Running the Numbers on the 2015 Chicago Marathon
Am Chicago Marathon 2015 nahmen am 11. Oktober 2015 45.000 läufer teil. Mehr als 37.000 haben das Rennen beendet und Details zur Performance jedes einzelnen Läufers wurden sorgfältig aufgezeichnet. Untersuchen und visualisieren Sie einige Charakteristika der Läufer und ihrer Leistungen mithilfe eines benutzerdefinierten Entity-Stores, der all diese Daten enthält.
Laden Sie einen Entity-Store des Marathons aus einem ResourceObject.
![Click for copyable input](assets.de/running-the-numbers-on-the-2015-chicago-marathon/In_180.png)
marathonEntityStore = ResourceData[
ResourceObject[
Association[
"Name" -> "2015 Chicago Marathon Data",
"UUID" -> "7dc77972-cfc3-48dc-8d08-0292c6d2a929",
"ResourceType" -> "DataResource", "Version" -> "1.0.0",
"Description" -> "2015 Chicago Marathon participant data",
"ContentSize" -> Quantity[1990.2215919999999`, "Megabytes"],
"ContentElements" -> {"Content"}]]]
![](assets.de/running-the-numbers-on-the-2015-chicago-marathon/O_129.png)
Registrieren Sie den Store für diese Sitzung.
![Click for copyable input](assets.de/running-the-numbers-on-the-2015-chicago-marathon/In_181.png)
PrependTo[$EntityStores, marathonEntityStore];
Extrahieren Sie Anzahl der Läufer und, mithilfe einer implizit definierten Entitätsklasse, die Anzahl der männlichen und weiblichen Teilnehmer.
![Click for copyable input](assets.de/running-the-numbers-on-the-2015-chicago-marathon/In_182.png)
EntityValue["ChicagoMarathon2015", "EntityCount"]
![](assets.de/running-the-numbers-on-the-2015-chicago-marathon/O_130.png)
![Click for copyable input](assets.de/running-the-numbers-on-the-2015-chicago-marathon/In_183.png)
Table[EntityValue[
EntityClass["ChicagoMarathon2015", "Gender" -> gender],
"EntityCount"], {gender, {Entity["Gender", "Male"],
Entity["Gender", "Female"]}}]
![](assets.de/running-the-numbers-on-the-2015-chicago-marathon/O_131.png)
Wählen Sie fünf zufällige Läufer aus.
![Click for copyable input](assets.de/running-the-numbers-on-the-2015-chicago-marathon/In_184.png)
RandomEntity["ChicagoMarathon2015", 5]
![](assets.de/running-the-numbers-on-the-2015-chicago-marathon/O_132.png)
Sehen Sie sich die gespeicherten Daten eines bestimmten Läufers an.
![Click for copyable input](assets.de/running-the-numbers-on-the-2015-chicago-marathon/In_185.png)
Entity["ChicagoMarathon2015", "Runner145"]["PropertyAssociation"]
Extrahieren Sie Anzahl der Läufer nach Nationalität und erstellen Sie eine Tabelle der am stärksten vertretenen Nationalitäten.
![Click for copyable input](assets.de/running-the-numbers-on-the-2015-chicago-marathon/In_186.png)
nationalityTallies =
Reverse[SortBy[
Tally[EntityValue["ChicagoMarathon2015",
EntityProperty["ChicagoMarathon2015", "Country"]]], Last]];
![](assets.de/running-the-numbers-on-the-2015-chicago-marathon/O_134.png)
Visualisieren Sie die geodätischen Pfade von Chicago in die Ursprungsländer der Teilnehmer.
![Click for copyable input](assets.de/running-the-numbers-on-the-2015-chicago-marathon/In_188.png)
With[{chicago =
Entity["City", {"Chicago", "Illinois", "UnitedStates"}]},
GeoGraphics[{Darker[Green],
GeoPath[{chicago, #} & /@ nationalityTallies[[All, 1]],
"Geodesic"]},
GeoRange -> "World",
GeoProjection -> "Robinson",
GeoCenter -> chicago]]
![](assets.de/running-the-numbers-on-the-2015-chicago-marathon/O_135.png)
Konstruieren Sie eine Heatmap der USA, die die Heimatorte der amerikanischen Teilnehmer zeigt.
![](assets.de/running-the-numbers-on-the-2015-chicago-marathon/O_136.png)
Anzahl der Läufer pro Laufvariante berechnet aus dem zerteilten Mittelwert.
![Click for copyable input](assets.de/running-the-numbers-on-the-2015-chicago-marathon/In_193.png)
allkm = Table[
Normal[allTimeSplits[[i]][2 ;;, "Time"]], {i,
Length[allTimeSplits]}];
![Click for copyable input](assets.de/running-the-numbers-on-the-2015-chicago-marathon/In_194.png)
allsplitbins = DeleteMissing[Transpose[allkm], 2];
![Click for copyable input](assets.de/running-the-numbers-on-the-2015-chicago-marathon/In_195.png)
meanall = Table[N[Mean[allsplitbins[[i]]]], {i, Length[allsplitbins]}]
![](assets.de/running-the-numbers-on-the-2015-chicago-marathon/O_137.png)
![Click for copyable input](assets.de/running-the-numbers-on-the-2015-chicago-marathon/In_196.png)
marathondistances = (allTimeSplits[[1]])[All, "Split"] // Normal
![](assets.de/running-the-numbers-on-the-2015-chicago-marathon/O_138.png)
![Click for copyable input](assets.de/running-the-numbers-on-the-2015-chicago-marathon/In_197.png)
differencesall = Table[{marathondistances[[i + 1]],
allsplitbins[[i]] - meanall[[i]]},
{i, Length[allsplitbins]}];
![Click for copyable input](assets.de/running-the-numbers-on-the-2015-chicago-marathon/In_198.png)
allHistograms =
Histogram[#2, {60}, PlotLabel -> NumberForm[#1, {3, 1}]] & @@@
differencesall;
Erzeugen Sie Histogramm für jeden Spit.
![Click for copyable input](assets.de/running-the-numbers-on-the-2015-chicago-marathon/In_199.png)
Grid[Partition[allHistograms, UpTo[3]]]
![](assets.de/running-the-numbers-on-the-2015-chicago-marathon/O_139.png)
Plotten Sie eine geglättete Kernverteilung der Unterschiede zwischen den einzelnen Laufvarianten und deren Mittelwerte.
![](assets.de/running-the-numbers-on-the-2015-chicago-marathon/O_140.png)