Photo by oxana v on Unsplash

Dieser Leitfaden wurde mit einigen ausführlicheren Beispielen aktualisiert. Sie können die neueste Version des Blogs hier finden.

Wenn Sie mit Python-Visualisierung beginnen, sind Sie vielleicht von der Anzahl der Bibliotheken und Beispiele überwältigt:

  • Matplotlib
  • Seaborn
  • Plotly
  • Bokeh
  • Altair
  • Folium

Wenn Sie einen DataFrame haben, der darauf wartet, visualisiert zu werden, welche sollten Sie wählen? Einige Bibliotheken können in bestimmten Fällen besser sein als andere. In diesem Artikel werden die Vor- und Nachteile der einzelnen Bibliotheken aufgezeigt. Am Ende dieses Artikels sollten Sie in der Lage sein, die verschiedenen Eigenschaften der einzelnen Bibliotheken zu unterscheiden und sich leichter für die optimale Bibliothek zu entscheiden.

Wir werden dies anhand eines Beispieldatensatzes tun und ihn unter Verwendung der einzelnen Bibliotheken untersuchen, wobei wir uns auf einige spezifische Attribute konzentrieren:

Interaktivität

Wollen Sie Ihre Visualisierung interaktiv gestalten?

Einige Bibliotheken, wie z.B. Matplotlib, stellen Visualisierungen als Bilder dar; sie eignen sich daher gut zur Erklärung von Konzepten (in einem Papier, einer Folie oder einer Präsentation).

Auf der anderen Seite ermöglichen Bibliotheken wie Altair, Bokeh und Plotly die Erstellung interaktiver Diagramme, in die Ihre Benutzer eintauchen und sie selbst erkunden können

Syntax und Flexibilität

Wie unterscheidet sich die Syntax der einzelnen Bibliotheken? Bibliotheken auf niedrigerer Ebene wie Matplotlib lassen alles zu, was man sich vorstellen kann – allerdings um den Preis einer komplexeren API. Einige Bibliotheken wie Altair sind sehr deklarativ, was es einfacher macht, sie auf Ihre Daten abzubilden.

Datenart und Visualisierung

Arbeiten Sie mit einem speziellen Anwendungsfall, wie z.B. einem geographischen Plot, mit großen Daten, oder verwenden Sie einen Plot-Typ, der nur von einer bestimmten Bibliothek unterstützt wird?

Daten

Um den Vergleich zu erleichtern, werde ich in diesem Artikel die echten Daten verwenden, die ich von Github scrape:

Ich werde die Visualisierungen aus jeder Bibliothek mithilfe von Datapane einbetten, einem Python-Framework und einer API zum Veröffentlichen und Teilen von Python-Berichten. Wenn Sie mehr Beispiele aus der Praxis sehen möchten, sehen Sie sich die von Benutzern erstellten Berichte in der Datapane-Galerie an.

Um dem Artikel zu folgen, laden Sie entweder die csv-Datei von hier herunter oder holen Sie sich die Daten direkt aus dem Datapane Blob.

import datapane as dpdp.Blob.get(name='github_data', owner='khuyentran1401').download_df()

Erinnern Sie sich daran, sich vorher mit Ihrem Token bei Datapane anzumelden, wenn Sie den Blob verwenden möchten. Dies sollte weniger als 1 Minute dauern

Matplotlib

Matplotlib ist wahrscheinlich die am weitesten verbreitete Python-Bibliothek zur Visualisierung von Daten. Jeder, der sich für Data Science interessiert, hat Matplotlib wahrscheinlich mindestens einmal benutzt.

Pros

  1. Einfach die Eigenschaft der Daten zu sehen

Bei der Analyse von Daten kann es ideal sein, einen schnellen Blick auf die Verteilung zu werfen.

Wenn ich zum Beispiel einen schnellen Blick auf die Verteilung der Top 100 Nutzer mit den meisten Followern werfen möchte, reicht es normalerweise aus, Matplotlib zu benutzen.

Auch wenn die x-Achse von Matplotlib nicht gut aussieht, können wir die Verteilung der Daten besser verstehen, wenn wir uns das Diagramm ansehen.

2. kann alles darstellen

Matplotlib ist sehr vielseitig, was bedeutet, dass es jede Art von Grafik darstellen kann, die man sich vorstellen kann. Die Matplotlib-Website enthält eine sehr umfassende Dokumentation und verschiedene Graphen in der Galerie, was es einfach macht, Tutorials für jede verrückte Darstellung zu finden, die man sich vorstellen kann.

Ein Text wie dieser:

Vorteile

Matplotlib kann alles plotten, aber es kann kompliziert sein, nicht-basische Plots zu plotten oder die Plots so anzupassen, dass sie schön aussehen.

Auch wenn der Plot gut genug ist, um die Verteilung zu visualisieren, müssen Sie, wenn Sie Ihre Daten anderen präsentieren wollen, die x-Achse und die y-Achse korrigieren, was eine Menge Aufwand bedeutet. Das liegt daran, dass Matplotlib eine extrem einfache Schnittstelle hat.

Ausblick: Matplotlib kann alles plotten, aber komplexe Plots können viel mehr Code erfordern als andere Bibliotheken

Seaborn ist eine Python-Datenvisualisierungsbibliothek, die auf Matplotlib basiert. Sie bietet einen Wrapper auf höherer Ebene für die Bibliothek, was die Benutzung einfacher macht.

Pros

  1. Weniger Code

Sie bietet eine übergeordnete Schnittstelle für ähnliche Plots. Mit anderen Worten, seaborn bietet im Allgemeinen ähnliche Plots wie matplotlib, aber mit weniger Code und einem schöneren Design.

Wir verwenden dieselben Daten wie zuvor, um eine ähnliche Heatmap des Graphen zu zeichnen.

Wir erhalten eine bessere Heatmap, ohne die x- und y-Beschriftung zu setzen!

Gebräuchliche Diagramme hübscher machen

Viele Leute entscheiden sich für Seaborn, wenn es um beliebte Diagramme wie Balkendiagramme, Boxdiagramme, Zähldiagramme, Histogramme usw. geht, nicht nur weil sie mit weniger Code erstellt werden können, sondern weil sie auch viel hübscher aussehen. Wie wir in unserem obigen Beispiel sehen können, sehen auch die Farben besser aus als die Standardfarben von Matplotlib.

Cons

Seaborn ist eingeschränkter und hat nicht so eine breite Sammlung wie Matplotlib

Takeaway: Seaborn ist eine höherwertige Version von Matplotlib. Obwohl es keine so umfangreiche Sammlung wie Matplotlib hat, lässt Seaborn beliebte Diagramme wie Balkenplots, Boxplots, Heatmaps usw. mit weniger Code hübsch aussehen.

Plotly

Die Python-Grafikbibliothek von Plotly macht es einfach, interaktive Diagramme in Publikationsqualität zu erstellen. Sie kann auch ähnliche Diagramme wie Matplotlib und seaborn erstellen, wie z.B. Liniendiagramme, Streudiagramme, Flächendiagramme, Balkendiagramme usw.

Pros

  1. Wie R

Wenn Sie ein Fan von Plots in R sind und dessen Funktionen vermissen, wenn Sie zu Python wechseln, bietet Ihnen Plotly die gleiche Qualität an Plots mit Python!

Mein Favorit ist Plotly Express, weil es wirklich einfach und sogar schneller ist, großartige Plots aus einer einzigen Python-Zeile zu erstellen.

Einfache Erstellung interaktiver Plots

Plotly macht es auch einfach, interaktive Plots zu erstellen. Interaktive Diagramme sind nicht nur hübsch, sondern erleichtern es dem Betrachter auch, sich die einzelnen Datenpunkte genauer anzusehen.

Erinnern Sie sich an das Balkendiagramm, das wir zuvor mit matplotlib erstellt haben? Schauen wir uns an, wie es mit Plotly aussieht

Mit etwa den gleichen Codezeilen erzeugen wir ein interaktives Diagramm, bei dem man mit der Maus über jeden Balken fahren kann, um zu sehen, welchen Nutzer und wie viele Follower der Balken repräsentiert. Das bedeutet, dass der Nutzer Ihrer Visualisierung diese selbst erkunden kann.

3. Komplexe Plots leicht gemacht

Mit Plotly können einige Plots, die normalerweise schwierig zu erstellen sind, leicht erstellt werden.

Wenn wir zum Beispiel eine Karte erstellen wollen, um die Standorte der Github-Nutzer zu visualisieren, können wir ihre Breiten- und Längengrade wie hier gezeigt ermitteln, und dann diese Daten verwenden, um die Standorte der Nutzer auf der Karte wie folgt zu markieren

Mit ein paar Zeilen Code werden die Standorte aller Nutzer schön auf einer Karte dargestellt. Die Farbe der Blasen steht für die Anzahl der Abzweigungen und die Größe für die Gesamtzahl der Sterne

Takeaway: Plotly ist großartig, um interaktive und publikationsfähige Diagramme mit wenigen Zeilen Code zu erstellen.

Altair

Altair ist eine deklarative statistische Visualisierungsbibliothek für Python, die auf Vega-Lite basiert, was sie ideal für Diagramme macht, die eine Menge statistischer Transformationen erfordern.

Pros

1. Einfache Visualisierungsgrammatik

Die zur Erstellung der Visualisierung verwendete Grammatik ist einfach zu verstehen. Es müssen nur die Verbindungen zwischen den Datenspalten und den Kodierungskanälen angegeben werden, der Rest wird automatisch geplottet. Das klingt abstrakt, ist aber eine große Sache, wenn man mit Daten arbeitet, und es macht die Visualisierung von Informationen wirklich schnell und intuitiv.

Wenn wir zum Beispiel mit den obigen Titanic-Daten die Anzahl der Personen in jeder Klasse zählen möchten, müssen wir nur count() in der y_Achse verwenden

2. Einfaches Transformieren von Daten

Altair macht es auch sehr einfach, die Daten während der Erstellung des Diagramms zu transformieren

Wenn wir zum Beispiel das Durchschnittsalter jedes Geschlechts in der Titanic finden möchten, können wir die Transformation innerhalb des Codes durchführen, um das Diagramm zu erstellen, anstatt die Transformation im Voraus wie in Plotly durchzuführen.

Wir könnten auch sicherstellen, dass es sich bei der Klasse um nominale Daten handelt (kategoriale Daten ohne jegliche Ordnung) mit :N oder sicherstellen, dass mean_age ein quantitativer Wert ist (Maß für Werte wie Zahlen) mit :Q

Eine vollständige Liste der Datentransformationen finden Sie hier

3. Einfaches Verknüpfen von Diagrammen

Altair ermöglicht Ihnen auch einige beeindruckende Verknüpfungen zwischen Diagrammen, wie z. B. die Verwendung einer Intervallauswahl, um den Inhalt eines angehängten Histogramms zu filtern.

Wenn wir zum Beispiel die Anzahl der Personen in jeder Klasse innerhalb des Intervalls, das wir in einem Punktdiagramm zwischen Alter und Fahrpreis auswählen, visualisieren möchten, könnten wir so vorgehen.

Wenn wir unsere Maus ziehen, um das Intervall innerhalb des Punktdiagramms auszuwählen, können wir die Veränderung im Balkendiagramm darunter sehen. Kombiniert mit den Transformationen und Berechnungen von vorhin bedeutet dies, dass Sie einige extrem interaktive Diagramme erstellen können, die on-the-fly Berechnungen durchführen – und das sogar ohne einen laufenden Python Server!

Cons

Wenn Sie kein benutzerdefiniertes Styling festlegen, sehen die einfachen Diagramme wie das Balkendiagramm nicht so gestylt aus wie Seaborn oder Plotly. Altair empfiehlt auch keine Datensätze mit mehr als 5000 Stichproben und empfiehlt stattdessen, dass Sie Ihre Daten vor der Visualisierung aggregieren.

Ausnahme: Altair ist ideal für anspruchsvolle Diagramme zur Darstellung von Statistiken. Altair kann nicht mit Daten über 5000 Stichproben umgehen und einige einfache Diagramme sehen im Vergleich zu Plotly oder Seaborn nicht so gestylt aus.

Bokeh

Bokeh ist eine flexible interaktive Visualisierungsbibliothek, die auf Webbrowser zur Darstellung abzielt.

Pros

  1. Interaktive Version von Matplotlib

Wenn wir eine Rangliste der oben genannten interaktiven Visualisierungsbibliotheken aufstellen, wird Bokeh wahrscheinlich an erster Stelle stehen, was die Ähnlichkeit mit Matplotlib angeht.

Matplotlib kann jede beliebige Darstellung erstellen, da es eine Visualisierungsbibliothek auf niedriger Ebene ist. Bokeh kann sowohl als High-Level- als auch als Low-Level-Schnittstelle verwendet werden; daher kann es viele anspruchsvolle Plots erstellen, die Matplotlib erstellt, aber mit weniger Codezeilen und höherer Auflösung.

Zum Beispiel, der Kreisplot von Matplotlib

Könnte auch erstellt werden mit besserer Auflösung und mehr Nutzen durch Bokeh

2. Verbindung zwischen Plots

Bokeh macht es auch sehr einfach, Verbindungen zwischen Plots herzustellen. Die Änderung, die in einem Plot vorgenommen wird, wird auf einen anderen Plot mit einer ähnlichen Variable angewendet.

Wenn wir zum Beispiel 3 Diagramme nebeneinander erstellen und ihre Beziehung beobachten wollen, könnten wir Linked Brushing

ColumnDataSource verwenden, um die Daten zwischen den Diagrammen zu teilen. Wenn wir also eine Änderung an einem Plot vornehmen, werden auch die anderen Plots entsprechend geändert.

Gegensätze

Da Bokeh eine Bibliothek ist, die gewissermaßen eine Schnittstelle auf mittlerer Ebene hat, braucht es oft weniger Code als Matplotlib, aber mehr Code, um denselben Plot zu erzeugen wie Seaborn, Altair oder Plotly.

Um zum Beispiel die gleiche Zählung mit Titanic-Daten zu erstellen, müssen wir nicht nur die Daten im Voraus transformieren, müssen wir auch die Breite des Balkens und die Farbe einstellen, wenn das Diagramm schön aussehen soll

Wenn wir die Breite für das Balkendiagramm nicht hinzufügen würden, würde das Diagramm so aussehen

Das heißt, müssen wir die Dimensionen manuell anpassen, um den Plot schöner zu gestalten

Wenn Sie einen schönen Balkenplot mit weniger Code erstellen wollen, könnte dies der Nachteil von Bokeh im Vergleich zu anderen Bibliotheken sein

Abzug: Bokeh ist die einzige Bibliothek, deren Schnittstelle von niedrig bis hoch reicht, was es einfach macht, sowohl vielseitige als auch elegante Grafiken zu erstellen. Dies hat jedoch den Nachteil, dass Bokeh im Allgemeinen mehr Code benötigt, um Plots in ähnlicher Qualität wie andere Bibliotheken zu erstellen.

Folium

Folium macht es einfach, Daten auf einer interaktiven Faltblattkarte zu visualisieren. Die Bibliothek hat eine Reihe von eingebauten Tilesets von OpenStreetMap, Mapbox und Stamen

Pros

  1. Einfach zu erstellen eine Karte mit Markern

Auch wenn Plotly, Altair, und Bokeh auch die Erstellung von Karten ermöglichen, verwendet Folium eine offene Straßenkarte, um mit minimalem Code das Gefühl einer Google-Karte zu vermitteln

Erinnern Sie sich, wie wir mit Plotly die Karte zur Visualisierung der Standorte der Github-Nutzer erstellt haben? Wir könnten die Karte mit Folium

Der ursprüngliche Standort in Brooklyn, NY. Zoomen Sie heraus, um andere Standorte auf der Karte zu sehen. Mit einigen Codezeilen haben wir eine echte Karte erstellt, die die Standorte der Nutzer anzeigt.

2. Potenziellen Standort hinzufügen

Wenn wir potenzielle Standorte anderer Nutzer hinzufügen wollen, macht Folium es uns leicht, indem es den Nutzern erlaubt, Markierungen hinzuzufügen

Klicken Sie auf die Karte, um einen neuen Standort zu sehen, der genau dort generiert wird, wo Sie klicken.

3 Plugins

Folium hat eine Reihe von Plugins, die Sie mit Ihrer Karte verwenden können – einschließlich eines Plugins für Altair. Was, wenn wir die Heatmap der Gesamtsterne von Github-Nutzern in der Welt sehen wollen, um zu erkennen, wo es eine hohe Anzahl von Top-Github-Nutzern mit einer hohen Anzahl von Gesamtsternen gibt? Mit der Heatmap in den Folium-Plugins können Sie genau das tun.

Zoomen Sie heraus, um das vollständige Bild der Heatmap zu sehen.

Mitnahme: Folium ermöglicht es Ihnen, eine interaktive Karte mit wenigen Zeilen Code zu erstellen. Sie kommt der Erfahrung einer Google Map sehr nahe.

Abschluss

Glückwunsch! Sie haben soeben sechs verschiedene Visualisierungstools für Ihre Visualisierung kennengelernt. Ich hoffe, dieser Artikel hat Ihnen einen Eindruck davon vermittelt, was die einzelnen Bibliotheken leisten und wann Sie was einsetzen sollten. Wenn Sie die wichtigsten Funktionen der einzelnen Bibliotheken kennen, können Sie bei Bedarf schneller die richtige Bibliothek herausziehen.

Wenn Sie immer noch nicht wissen, welche Bibliothek Sie für Ihre Daten verwenden sollen, wählen Sie einfach eine aus, die Sie für gut genug halten. Wenn der Code dann zu lang ist oder der Graph nicht so gut wird, wie Sie es sich vorstellen, versuchen Sie es einfach mit einer anderen Bibliothek!

Fühlen Sie sich frei, den Code für diesen Artikel in diesem Github Repo zu forken und mit ihm zu spielen.

Ich schreibe gerne über grundlegende Data Science Konzepte und spiele mit verschiedenen Algorithmen und Data Science Tools. Sie können sich mit mir auf LinkedIn und Twitter verbinden.

Starten Sie dieses Repo, wenn Sie die Codes für alle Artikel, die ich geschrieben habe, überprüfen möchten. Folgen Sie mir auf Medium, um über meine neuesten Data-Science-Artikel wie diese informiert zu bleiben:

admin

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht.

lg