Sankey-Diagramme erstellen

PythonPythonBeginner
Jetzt üben

This tutorial is from open-source community. Access the source code

💡 Dieser Artikel wurde von AI-Assistenten übersetzt. Um die englische Version anzuzeigen, können Sie hier klicken

Einführung

Sankey-Diagramme sind Flussdiagramme, die die Bewegung von Ressourcen oder Energie zwischen verschiedenen Stufen oder Systemen zeigen. In diesem Tutorial werden wir die Matplotlib-Bibliothek in Python verwenden, um Sankey-Diagramme zu erstellen.

Tipps für virtuelle Maschinen (VM)

Nachdem der Start der virtuellen Maschine abgeschlossen ist, klicken Sie in der oberen linken Ecke, um zur Registerkarte Notebook zu wechseln und Jupyter Notebook für die Übung zu nutzen.

Manchmal müssen Sie einige Sekunden warten, bis Jupyter Notebook vollständig geladen ist. Die Validierung von Vorgängen kann aufgrund von Einschränkungen in Jupyter Notebook nicht automatisiert werden.

Wenn Sie bei der Lernphase Probleme haben, können Sie Labby gerne fragen. Geben Sie nach der Sitzung Feedback, und wir werden das Problem für Sie prompt beheben.

Importieren der erforderlichen Bibliotheken

Bevor wir beginnen, Sankey-Diagramme zu erstellen, müssen wir die erforderlichen Bibliotheken importieren. In diesem Tutorial werden wir die Matplotlib-Bibliothek verwenden.

import matplotlib.pyplot as plt
from matplotlib.sankey import Sankey

Erstellen eines einfachen Sankey-Diagramms

Wir beginnen mit der Erstellung eines einfachen Sankey-Diagramms, das zeigt, wie die Sankey-Klasse verwendet wird.

Sankey(flows=[0.25, 0.15, 0.60, -0.20, -0.15, -0.05, -0.50, -0.10],
       labels=['', '', '', 'Erster', 'Zweiter', 'Dritter', 'Vierter', 'Fünfter'],
       orientations=[-1, 1, 0, 1, 1, 1, 0, -1]).finish()
plt.title("Die Standardeinstellungen erzeugen ein Diagramm wie dieses.")

Dieser Code erzeugt ein Sankey-Diagramm mit Standardeinstellungen, die die Beschriftungen und Orientierungen der Ströme umfassen. Das resultierende Diagramm wird mit dem Titel "Die Standardeinstellungen erzeugen ein Diagramm wie dieses." angezeigt.

Anpassen des Sankey-Diagramms

Wir können das Sankey-Diagramm anpassen, indem wir die Ströme, Beschriftungen, Orientierungen und andere Parameter ändern. In diesem Beispiel erstellen wir ein Diagramm mit längeren Pfaden und einer Beschriftung in der Mitte.

fig = plt.figure()
ax = fig.add_subplot(1, 1, 1, xticks=[], yticks=[],
                     title="Flussdiagramm eines Widgets")
sankey = Sankey(ax=ax, scale=0.01, offset=0.2, head_angle=180,
                format='%.0f', unit='%')
sankey.add(flows=[25, 0, 60, -10, -20, -5, -15, -10, -40],
           labels=['', '', '', 'Erster', 'Zweiter', 'Dritter', 'Vierter',
                   'Fünfter', 'Hurra!'],
           orientations=[-1, 1, 0, 1, 1, 1, -1, -1, 0],
           pathlengths=[0.25, 0.25, 0.25, 0.25, 0.25, 0.6, 0.25, 0.25,
                        0.25],
           patchlabel="Widget\nA")  ## Argumente für matplotlib.patches.PathPatch
diagrams = sankey.finish()
diagrams[0].texts[-1].set_color('r')
diagrams[0].text.set_fontweight('bold')

Dieser Code erzeugt ein Sankey-Diagramm mit längeren Pfaden, einer Beschriftung in der Mitte und anderen angepassten Parametern. Das resultierende Diagramm wird mit dem Titel "Flussdiagramm eines Widgets" angezeigt.

Verbinden von zwei Systemen in einem Sankey-Diagramm

Wir können auch zwei Systeme in einem Sankey-Diagramm verbinden. In diesem Beispiel erstellen wir ein Diagramm mit zwei verbundenen Systemen.

fig = plt.figure()
ax = fig.add_subplot(1, 1, 1, xticks=[], yticks=[], title="Zwei Systeme")
flows = [0.25, 0.15, 0.60, -0.10, -0.05, -0.25, -0.15, -0.10, -0.35]
sankey = Sankey(ax=ax, unit=None)
sankey.add(flows=flows, label='eins',
           orientations=[-1, 1, 0, 1, 1, 1, -1, -1, 0])
sankey.add(flows=[-0.25, 0.15, 0.1], label='zwei',
           orientations=[-1, -1, -1], prior=0, connect=(0, 0))
diagrams = sankey.finish()
diagrams[-1].patch.set_hatch('/')
plt.legend()

Dieser Code erzeugt ein Sankey-Diagramm mit zwei verbundenen Systemen. Das resultierende Diagramm wird mit dem Titel "Zwei Systeme" angezeigt.

Zusammenfassung

In diesem Tutorial haben wir gelernt, wie man Sankey-Diagramme mit der Matplotlib-Bibliothek in Python erstellt. Wir haben mit einem einfachen Diagramm begonnen und es dann durch Änderung der Ströme, Beschriftungen, Orientierungen und anderer Parameter angepasst. Wir haben auch gelernt, wie man zwei Systeme in einem Sankey-Diagramm verbindet. Mit diesen Tools können wir informierende und visuell ansprechende Flussdiagramme für eine Vielzahl von Anwendungen erstellen.