Datenvisualisierung ist eine Wissenschaft für sich. Es gibt unzählige Tools, die es uns ermöglichen, unsere Daten ansprechend darzustellen. Über manche davon habe ich bereits geschrieben.

Eine vernünftige Datenvisualisierung ist die Grundlage für jegliches weiteres Vorgehen in Data Science. Bevor man mit dem Bau statistischer Modelle anfängt ist es empfehlenswert, sich die Daten zunächst grafisch anzuschauen.

Heute werde ich einen Überblick über die verschiedenen Möglichkeiten der grafischen Datenaufarbeitung geben und einige gute Visualisierungstools vorstellen. Generell lassen sich alle Angebote in kostenpflichtige und kostenlose Tools unterteilen.

Als Beispiel für Visualisierungen werde ich den vergangenen Covid19 Ausbruch im Kreis Gütersloh (wo ich auch wohne) nehmen. Die Falldaten für Gütersloh stammen vom offiziellen Twitteraccount des Kreises. Ich habe sie geglättet, da der Kreis nicht jeden Tag neue Fälle bekannt gab. 

Stata (kostenpflichtig)

Stata wird oft im wissenschaftlichen Bereich für klassische statistische Modellierungen eingesetzt.  Ich habe Stata im Rahmen meiner Dissertation in Volkswirtschaftslehre sehr intensiv genutzt. Es ist mit Stata sehr leicht verchiedene, auch komplexe Daten grafisch darzustellen. Dazu reichen in Stata nur ein paar Klicks.

Großer Nachteil von Stata ist der Preis. Das Tool ist relativ teuer. Dafür ist aber der Support und  die Community für die Anwendungen ausgezeichnet.

Leider habe ich meine Stata-Lizenz auf meinem alten Rechner und kann zur Zeit nur schlecht mit Stata arbeiten.

Python – Matplotlib (kostenlos)

Ein großer Vorteil von Matplotlib: es ein kostenloses Tool. Ehrlicherweise enden damit seine Vorteile aber auch.

Es gibt einen Grund, wieso die meisten Anleitungen zur Erstellung einer Grafik in Matplotlib/Python nur einfache Linien oder Bar-Charts demonstrieren. Für alles andere muss man schon richtig gut programmieren können. Auch das reicht meistens nicht, denn man muss die für Matplotlib spezifischen Bezeichnungen kennen und sich in die nicht einfachen Bezeichnungen der verschiedenen Visualisierungsvarianten einarbeiten. 

Die Anleitungen für Matplotlib bestehen meistens aus künstlich in Python generierten Datensätzen, mit denen man in der Praxis nie arbeiten muss. Sobald man aber einen eigenen Datensatz hat, kann Matplotlib nur selten die Daten korrekt interpretieren. Zumindest ist dies immer wieder meine Erfahrung. 

Beispielsweise wollte ich in Matplotlib klassische Zeitreihenlinien (Line Plots) für Covid-Geschehen an verschiedenen Orten im Kreis Gütersloh erstellen. Das war nur nach langen Recherchen möglich. Matplotlib erkannte meine Daten nicht, dann waren die Datenformen falsch, und und und. 

Am Ende fand ich auf Stack Overflow ein Skript, welches ich für meine Bedürfnisse angepasst habe. Herausgekommen ist folgende Grafik (gezeigt werden aktive Covid19-Fälle):

Wie man sieht, habe ich die Tage immer noch nicht gut sortieren können (und keine Zeit, die Grafik weiter zu bearbeiten).

Hier das Skript, das ich für meine Zwecke bearbeitet habe:

import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
import seaborn as sns


%matplotlib inline
# Python 3 
df.head(5)
ort datum fälle
0 Gütersloh 2020-06-02 17
1 Gütersloh 2020-06-03 18
2 Gütersloh 2020-06-04 20
3 Gütersloh 2020-06-05 20
4 Gütersloh 2020-06-06 20
fig,ax = plt.subplots()

for ort in ['Gütersloh','Rheda-Wiedenbrück','Kreis']:
    ax.plot(df[df.ort==ort].datum,df[df.ort==ort].fälle,label=ort)

ax.set_xlabel("datum")
ax.set_ylabel("fälle")
ax.legend(loc='best')
from pylab import rcParams
rcParams['figure.figsize'] = 1, 10

Tableau (kostenpflichtig)

Als nächstes habe ich die Gütersloher Covid19-Daten in Tableau visualisiert. Tableau gehört zu den Tools, für die man keine Programmierkenntnisse benötigt. Aus diesem Grund ist Tableau von den erwähnten Tools für Visualisierungen am leichtesten zu bedienen. Ich habe bereits einen Beitrag als Einleitung zur Visualisierung mit Tableau hier veröffentlicht.

Tableau ist eine kostenpflichtige Anwendung – allerdings gibt es auch eine kostenfreie Version Tableau Public, mit der man die Anwendung sehr gut ausprobieren kann. Hier muss man aber auch ein Konto bei Tableau anlegen. 

Meine Visualisierung der Gütersloher Daten mit Tableau schaut wie folgt aus:

Die Erstellung dieser Grafik hat (im Gegensatz zu Matplotlib) nur wenige Minuten in Anspruch genommen. Ich musste auch keinen Roman an Programmiercode schreiben, um die paar Linien zu erstellen.

Tableau funktionert mit simplen Drag & Drop-Verfahren auf einer Arbeitsfläche (Dashboard). Das wichtigste ist die Daten entsprechend den Tableau-Anforderungen zu benennen und dann gelingen die Visualisierungen ganz leicht.

Die Visualisierungen schauen auch besser aus als im Matplotlib.

Python – Plotly (kostenlos)

Ein (in meinen Augen) klarer Gewinner der Visualisierungskunst ist Plotly. Plotly ist eine Python Bibliothek. Im Gegensatz zu Matplotlib, lassen sich aber die Grafiken sehr leicht erstellen und schauen auch sehr schön aus. Zudem ist Plotly auch kostenlos.

Für die Jupyter Notebook Benutzer ist die Installation auch sehr leicht: Einfach folgenden Code in den Conda Prompt eintippen:

$ conda install -c plotly plotly=4.9.0

Auf der offiziellen Webseite von Plotly kann man die Installationsmöglichkeiten (und Anleitungen dazu) einsehen.

Nach dem ich Plotly für Jupyter Notebook installiert habe, habe ich folgendes Skript für die Lineplots auf der Plotlywebseite gefunden:

import plotly.express as px
df = px.data.gapminder()
fig = px.area(df, x="year", y="pop", color="continent", line_group="country")
fig.show()

Und sie für meine Zwecke angepasst:

import plotly.express as px
import pandas as pd
fig = px.line(df, x="datum", y="fälle", color='ort')
fig.show()

Vor allem im Vergleich zum Matplotlib sieht man, wie viel klarer und einfacher das Skript ist.

Und hier die Visualisierung:

Die Visualisierungen mit Plotly kann man auch interaktiv gestalten. Dazu werde ich einen weiteren Beitrag schreiben. Auf jeden Fall ist Plotly für Nutzer, die ein wenig mit Programmiersprachen vertraut sind, aus meiner Sicht eine optimale Lösung.

Beispiele mit Daten- Github

Das benutzte Beispiel mit den Gütersloher Covid19-Daten (inklusive Jupyter Notebooks) werde ich auf meinem Github Account zur freien Verfügung bereitstellen.

*Ich wurde für diesen Beitrag von keinem der erwähnten Unternehmen bezahlt. Die Meinung hier entspricht meiner persönlichen Erfahrung.

Photo by bongkarn thanyakij from Pexels

 

Einfaches und kostenloses Dashboard erstellen

Einfache Visualisierung in Python erstellen – Einführung

Datenvisualisierung in Tableau: Einleitung mit Praxisbeispiel