Язык Wolfram Language

Расширенный доступ к базе знаний Wolfram Knowledgebase

Покемоны

Wolfram Knowledgebase содержит информацию о популярных культурных феноменах и явлениях, а также научные знания. В данном примере мы рассмотрим различные физические характеристики (очки за нападения и защиту, вес, цвет) покемонов.

Отобразим на графике распределения атак и точек обороны во всех играх с покемонами.

In[1]:=
Click for copyable input
PairedHistogram[EntityValue["Pokemon", "Attack"], EntityValue["Pokemon", "Defense"], ChartLabels -> {"attack", "defense"}, ChartStyle -> {{LightOrange, LightBlue}, None}]
Out[1]=

С помощью функции Dataset, cоздадим данные, включающие очки за атаки и оборону для VI поколения покемонов, и отобразим эти данные на графике.

In[2]:=
Click for copyable input
stat = EntityValue[Entity[ "Pokemon", { "Generation" -> Entity[ "PokemonGeneration", "GenerationVI"]}], {"Attack", "Defense"}, "Dataset"];
In[3]:=
Click for copyable input
ListPlot[stat, PlotStyle -> Directive[Opacity[0.5], Orange, PointSize[Medium]], AxesLabel -> Automatic, LabelingFunction -> None]
Out[3]=

Сравним и отобразим на графике среднюю массу покемонов разных поколений.

In[4]:=
Click for copyable input
wg = Normal[ GroupBy[Rule @@@ EntityValue["Pokemon", {"Generation", "Weight"}], First -> Last, Mean]]
Out[4]=
In[5]:=
Click for copyable input
BarChart3D[wg[[All, 2]], ChartLegends -> wg[[All, 1]], ChartStyle -> 24]
Out[5]=

Воспользуемся неявно определенным класс сущностей, чтобы найти три самых тяжелых покемона.

In[6]:=
Click for copyable input
EntityList[EntityClass["Pokemon", {"Weight" -> TakeLargest[3]}]]
Out[6]=
In[7]:=
Click for copyable input
EntityList[EntityClass["Pokemon", {"Weight" -> TakeLargest[3]}]]; EntityValue[%, "Generation"]
Out[7]=

Воспользуемся неявно определенным классом сущностей, чтобы найти желтых покемонов весом от 50 до 100 кг.

In[8]:=
Click for copyable input
yellowMidweights = EntityList[ Entity["Pokemon", {"PokedexColor" -> "Yellow", "Weight" -> Between[{ Quantity[50, "Kilograms"], Quantity[100, "Kilograms"]}]}]]
Out[8]=

Создадим коллаж из символов, изображающих покемонов, где размер каждого символа будет соответствовать весу изображенного покемона.

In[9]:=
Click for copyable input
ImageCollage[ Rule @@@ EntityValue[yellowMidweights, {"Weight", "Image"}], Background -> White]
Out[9]=

Сравним цвета покемонов в первого и новейшего (VI) поколения.

код на языке Wolfram Language целиком
In[10]:=
Click for copyable input
{color1, color6} = Sort[Tally[EntityValue[EntityList[ Entity["Pokemon", {"Generation" -> Entity["PokemonGeneration", #]}]], "PokedexColor"]]] & /@ {"GenerationI", "GenerationVI"};
In[11]:=
Click for copyable input
PieChart3D[{color1[[All, 2]], color6[[All, 2]]}, PlotLabel -> "Gen. I (outer) vs. Gen. VI (inner)", ChartElementFunction -> "ProfileSector3D", SectorOrigin -> {Automatic, 1}, ChartStyle -> (color1[[All, 1]] /. co_Entity :> Symbol[co[[2]]]), ChartLegends -> color1[[All, 1]]]
Out[11]=

Родственные примеры

de en es ja ko pt-br zh