Letzte Woche habe ich den ersten Teil dieses Blogposts veröffentlicht, in dem ich einige einfache Visualisierungsmöglichkeiten der Statistiksoftware R vorgestellt habe. Daneben enthielt der Blogpost einige Empfehlungen zu Entwicklungsumgebungen und Beschreibungen des Arbeitens mit R.
In diesem zweiten Teil möchte ich nun zwei Beispiele speziellerer Visualisierungsformen zeigen und erklären, wie man mit R Daten für solche Visualisierungen aufbereiten kann. Wie gehabt drehen sich meine Betrachtungen um die Daten der permanenten Velozählstellen in der Stadt Zürich. Die Stadt stellt diese Daten verdankenswerterweise im Rahmen ihrer Open Data-Strategie frei zur Verfügung.
Visualisierungs-Klassiker: Nightingale-Plot
Als erstes möchte ich die Wochenrhythmen des Veloverkehrs an den einzelnen Zählstellen visualisieren. Das habe ich mit einem sogenannten Nightingale-Plot gemacht. Ich habe den Plot aus R im PDF-Format exportiert und im Vektorgrafikprogramm Inkscape noch etwas verschönert. Generell gilt: man kommt mit R grafisch relativ weit. Insbesondere mit ggplot2 erstellte Grafiken kann man in der Regel direkt zum Beispiel in Berichten einsetzen. Je nach Grafik bzw. dem verwendeten R-Paket kann sich das „Nachpolieren“ meiner Meinung nach aber schon lohnen. Ich habe dies bei beiden folgenden Grafiken (jeweils in einem Umfang von weniger als 10 Minuten) getan.
Der Nightingale-Plot vergleicht die mittlere Anzahl Velos pro Stunde über die Wochentage hinweg und visualisiert diese über den Radius (hier gibt es eine kritische Diskussion dazu). Die einzelnen Darstellungen zeigen damit das Geschehen an der jeweiligen Zählstelle (man darf also nicht einen absoluten Vergleich zum Beispiel zwischen den Dienstags-Zahlen an der Andreasstrasse und jenen an der Binzmühlestrasse anstellen).
Beim Prüfen der einzelnen Wochenmuster fällt auf, dass an den meisten Stationen der Veloverkehr am Samstag und Sonntag gegenüber den Arbeitstagen deutlich abfällt. Prominenteste Ausnahme ist der Mythenquai (MYTH) für Samstag und Sonntag sowie die Schulstrasse (SCHU) am Samstag. Die Langstrassen-Zählstelle (LANG) im Ausgangsquartier hat auch noch ein respektables Veloaufkommen am Samstag. Der rege Wochenendverkehr am Mythenquai und an der Schulstrasse lässt sich wohl primär aus Freizeitaktivitäten wie zum Beispiel einem Veloausflug entlang des linken Seeufers oder der entlang der Glatt begründen.
Kombination: Box-Plot und Liniendiagramm
Die nächste Grafik mit normalisierten Velozahlen pro Wochentag und Zählstelle reflektiert denselben Sachverhalt. Hier lassen sich aber Werte gut ablesen, während der Nightingale-Plot oben vor allem eine qualitative Übersicht gibt (und gewisse Probleme birgt).
Das spezielle Verkehrsmuster an Mythenquai und Schulstrasse ist auch in dieser Grafik augenfällig. Für die meisten anderen Zählstellen fallen die Zahlen am Samstag und am Sonntag auf circa 70% bzw. 50% des Tags mit den meisten Velos (in der Regel der Dienstag) ab.
Die kombinierte Grafik mit Boxplots und Liniendiagramm konnte in R einfach erstellt werden. Populäre Visualisierungspakete wie ggplot und ggmap setzten das Layer-Modell für Grafiken um. So konnte ich sehr einfach zuerst die Boxplots zeichnen und diese dann mit einer Liniengrafik überlagern. Das Layer-Modell bietet grosse Flexibilität. Aber: Wie immer wenn die technischen Möglichkeiten gross sind, ist aber das gesunde Augenmass der Anwenderin bzw. des Anwenders umso wichtiger.
Datenumformungen
In diesem Abschnitt erläutere ich einige Datenbearbeitungsschritte, welche für die hier vorgestellten Beispiele nötig waren, um die Daten der Stadt Zürich für die Visualisierungen passend aufzubereiten. Weniger technisch Interessierte können sich die Lektüre sparen und direkt zum Ende springen.
Das Einlesen der Velodaten der Stadt Zürich (Zählstände und Orte der Zählstellen) in R geschieht mit einigen Standard-Funktionen, die man bald memorisiert hat:
Nach dem Einlesen werden die Daten für die verschiedenen Visualisierungen unterschiedlich aggregiert. Dies kann mit einer Reihe von R-Bibliotheken und -Funktionen geschehen – zum Beispiel mit reshape und plyr. Oft führen mehrere Wege zum Ziel. Im folgenden Beispiel habe ich die beiden Tools kombiniert eingesetzt.
Wir starten mit diesem Datensatz (Auszug):
Um zu einen Datensatz zu erhalten, der für Visualisierung wie oben geeignet ist, aggregieren wir mit einer ersten Datenumformung per Wochentag. Als Aggregationsfunktion wird der Mittelwert (mean) gewählt:
Dadurch werden die Daten in die sogenannte long form (wenige, dafür lange Spalten) konvertiert. Der neue Datensatz listet alle Daten (also die Mittelwerte an allen Wochentage an allen Zählstationen) in je einer Spalte:
Mit einer zweiten Umformung erreichen wir, dass die einzelnen Wochentage jeweils ihre eigene Spalte erhalten und dass eine Zeile jeweils alle Daten einer Zählstelle umfasst (die wide form):
Nun gilt es für schöne Darstellungen nur noch, die Reihenfolge der Spalten so zu verändern, dass die Wochentage in ihrer korrekten Reihenfolge aufgelistet sind. Der folgende Datensatz diente als Grundlage für die Erstellung sowohl des Nightingale-Plot als auch des Boxplots mit Linien:
Und sonst?
Mit anderen Aggregationsoperationen können in R natürlich auch bequem andere Zeitperioden als Wochen untersucht werden, zum Beispiel der Jahresrhythmus des Veloverkehrs. Einige solcher Darstellungen werden Sie im dritten Teil dieser Serie finden.
Ich hoffe, dass ich mit diesem Artikel einige Einblicke in die Fähigkeiten von R im Bereich der komplexeren Datenumformung und der Visualisierung geben konnte. Für den letzten Teil halte ich noch zwei weitere Visualisierungstypen bereit: eine thematische Karte, die zwei Dimensionen visualisiert, sowie eine Heatmap.
Abonnieren Sie unseren RSS-Feed, um keinen unserer Artikel zu verpassen!
[Beim Schreiben dieses Artikels wurde ich unterstützt von Toralf Dittrich, Spezialist für Verkehrstechnik und Verkehrsmanagement in unserem Geschäftsbereich Verkehr.]
Entdecke mehr von digital.ebp.ch
Subscribe to get the latest posts sent to your email.
5 Gedanken zu „Blick in die Werkzeugkiste: Offene Daten in R – Teil 2“
Kommentare sind geschlossen.