# Wolfram Mathematica

## Use Word Clouds for Weighted Data

Create data that weights each country with its population.

In[1]:=
```years = Range[1716, 2016, 100]; data = Table[ AssociationThread @@ Transpose[ Select[EntityValue[ CountryData[], {"Name", EntityProperty["Country", "Population", {"Date" -> DateObject[{year}]}]}], TrueQ[Last[#] > \!\(\* NamespaceBox["LinguisticAssistant", DynamicModuleBox[{Typeset`query\$\$ = "0 people", Typeset`boxes\$\$ = TemplateBox[{"0", "\"people\"", "people", "\"People\""}, "Quantity", SyntaxForm -> Mod], Typeset`allassumptions\$\$ = {}, Typeset`assumptions\$\$ = {}, Typeset`open\$\$ = {1, 2}, Typeset`querystate\$\$ = { "Online" -> True, "Allowed" -> True, "mparse.jsp" -> 1.326065`6.574109805988145, "Messages" -> {}}}, DynamicBox[ToBoxes[ AlphaIntegration`LinguisticAssistantBoxes["", 4, Automatic, Dynamic[Typeset`query\$\$], Dynamic[Typeset`boxes\$\$], Dynamic[Typeset`allassumptions\$\$], Dynamic[Typeset`assumptions\$\$], Dynamic[Typeset`open\$\$], Dynamic[Typeset`querystate\$\$]], StandardForm], ImageSizeCache->{101., {8., 16.}}, TrackedSymbols:>{ Typeset`query\$\$, Typeset`boxes\$\$, Typeset`allassumptions\$\$, Typeset`assumptions\$\$, Typeset`open\$\$, Typeset`querystate\$\$}], DynamicModuleValues:>{}, UndoTrackedVariables:>{Typeset`open\$\$}], BaseStyle->{"Deploy"}, DeleteWithContents->True, Editable->False, SelectWithContents->True]\)] &]], {year, years}];```

Construct a color function that always uses the same color for each country.

In[2]:=
```cfun[weight_, string_] := cfun[_, string] = RandomChoice[ColorData[97, "ColorList"]]```

Make a series of word clouds over time, where the size of the country is weighted by its population.

In[3]:=
```Multicolumn[ MapThread[ WordCloud[#, PlotLabel -> Style[Framed[#2], 16, Background -> LightGray], ColorFunction -> cfun, ImageSize -> 300] &, {data, years}], 2, Appearance -> "Horizontal"]```
Out[3]=