Sankey Diagramm zeichnen mit Matplotlib

In diesem Beitrag zeichnen wir ein neues Diagramm mit Matplotlib. Dabei handelt es sich um ein Sankey Diagramm. Dieser Typ von Grafik wird verwendet, um Mengenflüsse darzustellen. Dabei werden Mengen in Abhängigkeit von ihrer Größe durch Pfeile beschrieben. Werfen wir einen Blick auf unsere Grafik.

Sankey Diagramm Zeichnen Mit MatplotlibIn diesem Bild geht es um die Visualisierung der Verluste von Verbrennungsmotoren. Wie zu erkennen ist, wird nur ein sehr kleiner Teil des Treibstoffes für die Fahrleistung aufgewendet. Der größte Teil der investierten Energie geht durch Kühlung und den Auspuff verloren.

Zum Zeichnen dieses Diagramms binden wir unter Anderem das Modul Sankey (Link zu Beschreibung) aus dem Matplotlib Modul ein. Anschließend initialisieren wir das Diagramm mit mehreren Parametern. Da wir Prozentangaben verwenden wollen, setzen wir den Parameter scale auf 0.01. Für unit wählen wir das Prozentzeichen und format wird als Zahl ohne Nachkommastellen definiert. Die Variable margin legt einen Mindestabstand zum Rahmen des Diagramms fest und mit gap wird der horizontale Abstand zwischen den abzweigenden Pfeilen gesetzt.

Im nächsten Schritt fügen wir das Diagramm hinzu. In der Liste flows geben wir die Menge der Zu – und Abflüsse in Prozent ein. Abflüsse erhalten einen negativen und Zuflüsse einen positiven Wert. Des Weiteren legen wir die Orientierung der Pfeile fest. In orientations geben wir dazu die Werte 0, 1 oder -1 an. Als letzten Parameter übergeben wir die Bezeichnungen der einzelnen Pfeile (labels).

Um die Grafik zu zeichnen ist nun noch die Anweisung sankey.finish() notwendig. Wir legen den Titel fest und zeigen das Bild mit plt.show() .

Das Beispiel kann mir folgendem Befehl ausgeführt werden:

python3 matplotlib_sankey.py

Das komplette Beispiel herunterladen: matplotlib_sankey.zip

Über Anton Neururer 31 Artikel
Ich bin Programmierer und Blogger. Themen die mich besonders interessieren sind Python, C++ und Javascript. Des Weiteren befasse ich mich mit Fraktalen.

Hinterlasse jetzt einen Kommentar

Kommentar hinterlassen