Seaborn – Datenvisualisierung in Python!

Schon immer neidisch auf das schönere Layout von R-Graphen gewesen? Python braucht sich nicht mehr vor R verstecken! Der Astrophysiker Jake VanderPlas stellt in diesem Post auf O’Reilly Seaborn vor, das einem eine schönere Visualisierung von Daten als Matplotlib ermöglicht. Hier lernst Du wie Du das mit Seaborn schöne Graphen erstellst und Dataanalytics betreibst. 
Matplotlib wurde 1999 zum ersten Mal vorgestellt und hat daher ein etwas altmodisches Layout. Zudem harmonisiert es nicht sehr gut mit neuen Datenverabeitungsmodulen in Python wie Pandas oder Numpy.

Jake VanderPlas ein bekannter Wissenschaftler, der an dem Machinelearning Modul Scikit arbeitet und darüber mehere Lernvideos auf Youtube gepostet hat, stellt in diesem O’Reilly-Artikel das neue Visualierungsmodul Seaborn vor. Er bemängelt an Matplotlib besonderes:

  • schlechte Defaultoptionen für Grösse und Farbe der Plots
  • Lowleveltechnik im Vergleich zu den heutigen Anforderungen, wodurch sehr spezialiserter Code nötig ist, um ansprechende Plots zu generieren
  • keine Entwicklung für Pandas Dataframes

Seaborn hat ein schöneres Layout als Matplotlib

Die Lösung ist Seaborn und lässt sich auf dieser Site herunterladen. Hier ein Beispiel wie zur Zeit ein Matplotlib aussieht:

matplotlib

Und hier das Beispiel für die Implementierung in Seaborn:

seaborn

Der Plot ist etwas grösser, als Anfänger sehe ich aber noch keinen großen Unterschied. Die Leitidee für Seaborn ist das einfache erstellen von komplizierten Plottypen aus Pandadaten. Laut Seaborn ist das Ziel eine zu dem R-Packet ggplot ebenbürtiges Modul zu schaffen, um schnell, schöne Plots zu erstellen (“Seaborn’s goals are similar to those of R’s ggplot“). In den weiteren Beispielen wird das schön veranschaulicht!

Histogramme mit Seaborn

Zuerst generieren wir Zufallsvariablen, um den Punkt null mit verschiedenen Standardabweichungen!

data = np.random.multivariate_normal([0, 0], [[5, 2], [2, 2]], size=2000) data = pd.DataFrame(data, columns=['x', 'y']) for col in 'xy':     plt.hist(data[col], normed=True, alpha=0.5)

 

Die selbe Visualisierung wäre mit Matplotlib weniger schön und der dazugehörige Code nicht so kurz. Anstatt einem Histogramm können wir die Daten auch glätten!

smooth estimate of the distribution using a kernel density estimation Seaborn

Scatterplots mit Seaborn

Um die Daten in zwei Dimensionen zu ploten mit Höhenprofilen kann man einfach den Befehl jointplot verwenden.

seabornscatter Jointplot Seaborn

 

Das Layout kann leicht verändert werden. z.B. als hexagonales Muster.

seabornscatter2 hex option Seaborn

 

Visualisierung von mehrdimensionalen Daten

Wenn man Daten hat, die anstatt zwei Dimensionen drei oder mehr Dimensionen enthalten, ist es besser gepaarte Plots (“pair plots”) zu verwenden. Das ist besonders nützlich, um Korrelationen in mehrdimensionalen Daten zu erkennen. Mit dem nächsten Beispiel lernst Du, wie man an echten Daten mit Seaborn Daten verarbeitet, visualisiert und Schlüsse zieht. Ein bekanntes Beispiel ist der Irisdatensatz. Er enthält Daten von verschiedenen Blumen (die Zeilen im nächsten Bild), deren Charakteristika wie Blattlänge, Blütenlänge und Breite in der Natur vermessen wurden (Spalten im Datensatz).

iris table Tabelle python

Nachdem der Iris-Datensatz geladen ist, wird er plottetet. Seaborn schafft eine farblich schöne Abbildung, die einem hilft, Korrelationen schnell zu erkennen.

seabornmultiscatter Iris data set

 

 

Als nächstes plotten wir das Trinkgeldverhalten von Männern und Frauen bei Mittag- und Abendessen. Geladen wurden die Daten mit dem Befehl tips = sns.load_dataset(‘tips’).
Trinkgeld Python Seaborn

Recht schoen, kann man sofort erkennen, dass Männer bei Abendessen gerne mehr Trinkgeld geben als Frauen. Frauen hingegen, geben fast gleich viel aus.

Eine weitere Visualisierung nach Wochentagen zeigt, dass Männer wie Frauen am meisten Trinkgeld am Wochenende geben¨!

Trinkgeld nach Wochentagen

Eine weiterer Plot mit kombinierter Regression erlaubt es den Bedienungen, den wahrs. Trinkgeldbetrag zu berechnen.

Trinkgeld als Funktion des Betrages der Rechnung

 

Viele weiteren Beispiele lassen sich hier auf Englisch nachlesen!

Please follow and like us:

Leave a Reply

Your email address will not be published. Required fields are marked *