全球核反应堆
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]=
