全球核反应堆
NuclearReactorData 提供了世界上已知核反应堆的数据. 有些已被关闭,比如切尔诺贝利核反应堆. 可以选取当前正在运行的核反应堆来分析核能资源的情况.
In[1]:=
reactors = NuclearReactorData[];
In[2]:=
active = Keys@
Select[EntityValue["NuclearReactor", "Status",
"EntityAssociation"], # === "operational" &];
提取年发电量和所处国家信息.
In[3]:=
annualproduction =
NuclearReactorData[active, "AnnualEnergyProduction"];
countries = Map[First, NuclearReactorData[active, "Countries"]];
创建一个数据库,去掉有缺失值的数据. 正在运行的反应堆的数量超过 400 个.
In[4]:=
data = Transpose[{active, countries, annualproduction}];
data = DeleteMissing[data, 1, 2];
In[5]:=
data // Dimensions
Out[5]=
每个国家拥有的核反应堆的数量.
In[6]:=
percountry = GroupBy[data, #1[[2]] &];
In[7]:=
numberpercountry = Map[Length, percountry];
In[8]:=
BarChart[Sort[numberpercountry], ChartLabels -> Automatic,
ChartStyle -> "DarkRainbow", BarOrigin -> Left, BarSpacing -> 1,
LabelingFunction -> (Placed[#1, After] &), ImageSize -> Large]
Out[8]=
每个国家对应于总核发电量的反应堆总数.
In[9]:=
energytotals = Map[Total[#[[All, 3]]] &, percountry];
In[10]:=
stats = {Min, Max, Mean, Median, Total};
TableForm[#[energytotals] & /@ stats, TableHeadings -> {stats}]
Out[10]//TableForm=
核发电量最多的国家是美国和法国.
In[11]:=
TakeLargest[energytotals, 2]
Out[11]=
显示完整的 Wolfram 语言输入
Out[12]=
如果考虑人均发电量,地图看起来会是另外一个样子. 用 CountryData 获取列表中每个国家的人口总数.
In[13]:=
populations =
AssociationThread[Keys[energytotals],
CountryData[#, "Population"] & /@ Keys[energytotals]];
计算人均核发电量.
In[14]:=
energypercapita = energytotals/populations;
In[15]:=
TableForm[#[energypercapita] & /@ stats, TableHeadings -> {stats}]
Out[15]//TableForm=
在地图上,可以看到尽管美国的绝对核发电量最大,人均却不是最大,法国和瑞典位居前列.
In[16]:=
TakeLargest[energypercapita, 2]
Out[16]=
显示完整的 Wolfram 语言输入
Out[17]=