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