Posts mit dem Label Heatmap werden angezeigt. Alle Posts anzeigen
Posts mit dem Label Heatmap werden angezeigt. Alle Posts anzeigen

2014/10/31

visualisierung mit bokeh: beliebte vornamen in OÖ

erste versuche mit Bokeh

Bokeh ist eine python bibliothek für interaktive visualisierungen und datenplots. entwickelt wird sie von Continuum Analytics, das durch seine python distribution anaconda bekannt ist. die als open-source projekt entwickelte bibliothek erlaubt es, mit python interaktive und webfähige plots zu erzeugen - und das auf simple und schnelle art und weise. genug gründe für mich (als nicht unbedingten fan der matplotlib) einmal erste versuche damit zu starten.

die einbindung der bibliothek ist nicht schwierig zu bewerkstelligen. auch die anwendung zur erzeugung der plots erzeugt keinen syntaktischen overhead, wie der code für die beispielanwendung  zeigt (einseh- und downloadbar im visualisierungs-beispiele repo des blogs). die ergebnisse sind für den geringen aufwand visuell ansprechend und auch nützlich für die kommunikation von informationen aus den plots. bei meinen versuchen haben sich jedoch zwei problemfelder gezeigt, die dem noch jungen entwicklungsstands des projekts geschuldet sind. erstens ist die dokumentation noch sehr ausbaufähig. damit bleibt nichts anderes übrig, als bei der verwendung öfters mal im sourcecode der bibliothek nachzusehen. dieser ist zwar gut kommentiert und hilft, die korrekte anwendung von diversen methoden zu finden, kann aber eine gute dokumentation für das schnelle nachschlagen nicht ersetzen. als zweiten problembereich kamen mir dokumentierte parameter unter, die in folge jedoch nicht genutzt werden. dies ist besonders ärgerlich, wenn man die plots individuell verändern möchte. jedoch gehe ich davon aus, dass diese beiden problemgruppen in weiteren entwicklungsstadien behoben werden.

als beispielanwendung habe ich mich auf eine simple visualisierung mittels einer heatmap festgelegt. da bokeh auch eine eigene methode und ein beispiel in der gallery bereit stellt. als zusätzliches ziel setzte ich mir die einbindung eines bokeh-plots in eine statische webseite.

thema: beliebte vornamen

als datenquelle für dieses projekt hat sich der vornamen datensatz des landes oö (über daten.gv.at) angeboten. dieser enthält die 60 beliebtesten vornamen je geschlecht für die letzten 10 jahre. daraus wurden die 25 beliebtesten (nach summe der werte über die gesamtjahre) bestimmt und deren werte dann in einem pandas data frame in eine entsprechende form gebracht, um als input für die CategoricalHeatMap methode von Bokeh zu dienen. im endeffekt stellte sich heraus, dass die größte herausforderung des projekts -wie so oft bei datenanalysen und- visualisierungen- darin bestand, die daten in die gewünschte form zu bringen. die erstellung der eigentlichen plots mittels bokeh ging dann recht zügig.

sobald die visualisierungen erstellt waren, wurden die plots in ein bootstrap template importiert. das vorgehen (im web-beispiele repo des blogs dokumentiert), hätte ich zwar eleganter gestalten können, für eine schnelle präsentationsmöglichkeit ist die einbindung des html-outputs von bokeh aber geeignet. eine bedeutende verbesserung wäre natürlich eine interaktive einbindung, was auch eine effektive verwendung in dynamischen seiten erlauben würde. dies scheint mit bokeh auch möglich zu sein - aber auch hier fehlt noch eine bessere dokumentation. für den anspruch, ein einfaches beispiel zu gestalten, hat mir aber die einbindung des kompletten outputs gereicht. die ergebnisse über die 25 beliebtesten vornamen für männliche und weibliche neugeborene kann somit unter folgendem link betrachtet werden:


zusammenfassung

einbindung und verwendung der python visualisierung-bibliothek Bokeh sind einfach. das potential des projekts ist gross, aktuell gibt es jedoch noch einige mängel, va bezüglich der dokumentation.
und zum ergebnis des beispiels: Lukas bzw. Anna sind die beliebtesten vornamen für neugeborene in den letzten 10 jahren in oberösterreich. die plots zeigen darüber hinaus, dass es besonders bei weiblichen neugeborenen eine konzentration von besonders häufig verwendeten vornamen gibt. ein trend zu mehr individualität bei der benennung von neugeborenen ist zumindest mit diesen vorliegenden daten für die letzten 10 jahre nicht erkennbar.

2014/02/25

R-Package für interaktive Karten - rMaps

Kürzlich wurde ein neues Package präsentiert, um mit R interaktive Karten zu erstellen. Hier meine Erfahrung aus einigen Tests damit:

rMaps

Das Package wurde von Ramnath Vaidyanathan erstellt. Es ermöglicht die Erstellung von interaktiven Karten mit nur wenig Code und unterstützt einige javascript basierte Mapping Libraries, wie z.B. Leaflet. Das Package ist derzeit noch in einem Versuchsstadium, weist jedoch schon einige nützliche Funktionen auf. Es kann über den Github-Account des Entwicklers (Link) herunter geladen (bzw. geklont) werden und enthält eine ausführliche Installationsanweisung und Beispielcode. Weitere Anwendungsbeispiele finden sich auf der Website des Projekts. Hier zwei Beispiele mit sozialen Daten:

Beispiel: Kriminalitätskarte Houston

Heatmap: Kriminalitätsvorkommen in Houston - Übersicht
Das Beispiel wird auf dem Blog des Packages vorgestellt und visualisiert das Kriminalitätsvorkommen in Houston von Jänner bis August 2010 mit einer Heatmap. Der dazu benötigte Code wird im Post auch ausführlich erklärt.

Je nach Fragestellung kann der Analyserahmen vom Stadt- (Bild Screenshot Übersicht) bis hin auf Straßenzugsniveau (Bild Screenshot Detail) skaliert werden.
Heatmap: Kriminalitätsvorkommen in Houston - Detail

Beispiel: Einwohneranzahl je Gemeinde in Bezirken Steyr und Steyr-Land in 2013

Ein eigenes Beispiel verwendet Marker, welche die Gemeinden aus den politischen Bezirken Steyr bzw. Steyr-Land auf einer Hintergrundkarte (Datenbasis OSM, Rendering mit Leaflet) kennzeichnen. Die Zoomstufe ist auch hier wieder frei wählbar. Mit dem Mauszeiger kann eine Gemeinde ausgewählt werden und es erscheint in einem Pop-Up der Gemeindename und die jeweilige Einwohnerzahl aus dem Jahr 2013. 
Screenshot Beispielanwendung
Der Code des Skripts kann aus dem R-Beispiel Repositorium dieses Blogs auf Github herunter geladen werden: rBeispiele