Kurs
Die Stärke von Sankey-Diagrammen liegt darin, mehrstufige Systeme greifbar zu machen. Statt dich durch Datenzeilen zu wühlen, um die größten Energieverluste oder Budgetposten zu finden, erkennst du sie auf einen Blick an den dicksten Flüssen. Das macht sie nützlich für Energiemanagement, Finanzanalysen, die Optimierung von Marketing-Funnels und überall dort, wo es wichtiger ist, den Fluss und die Umwandlung von Ressourcen zu verstehen als exakte Zahlenvergleiche.
Wenn du deine analytischen Fähigkeiten über Flussvisualisierungen hinaus ausbauen willst, zeigen dir unser Data Visualization in Power BI-Kurs und der Data Visualization in Tableau-Kurs, wie du professionelle Dashboards und interaktive Berichte mit führenden Business-Intelligence-Plattformen erstellst.
Was ist ein Sankey-Diagramm?
Ein Sankey-Diagramm ist eine spezialisierte Flussvisualisierung, bei der die Breite der verbindenden Pfeile die Größe des Flusses zwischen verschiedenen Stufen, Kategorien oder Entitäten darstellt. Anders als klassische Flowcharts, die Prozessschritte zeigen, oder Balkendiagramme, die Einzelwerte vergleichen, eignen sich Sankey-Diagramme hervorragend, um zu zeigen, wie Mengen sich durch ein System bewegen, transformieren oder verteilt werden.

Bestandteile eines Sankey-Diagramms. Abbildung: Autorin/Autor.
Das obige Diagramm zeigt, wie ein Jahresbudget von 100.000 $ in verschiedene Kategorien fließt. Du siehst, wie die Zuweisung für Marketing (40.000 $) deutlich dicker erscheint als für F&E (25.000 $) – die Größenverhältnisse sind sofort erkennbar.
Geschichte und Entwicklung der Sankey-Diagramme
Das erste bekannte Sankey-Diagramm stammt aus dem Jahr 1898, als Captain Matthew Henry Phineas Riall Sankey damit die Energieeffizienz einer Dampfmaschine darstellte. Sein Diagramm zeigte, dass nur ein kleiner Teil der im Brennstoff enthaltenen Energie tatsächlich in nutzbare Arbeit umgesetzt wurde, während der Großteil als Abwärme verloren ging.

Das Prinzip proportionaler Flussdarstellungen ist jedoch älter. Charles Joseph Minard schuf 1869 das wohl berühmteste Flussdiagramm, das Napoleons verheerenden Russlandfeldzug von 1812 zeigt. Minards Darstellung machte sichtbar, wie die Armee beim Vormarsch und Rückzug immer kleiner wurde – die Linienstärke entsprach der Zahl der überlebenden Soldaten.

Bestandteile eines Sankey-Diagramms
Wenn du die Schlüsselelemente eines Sankey-Diagramms verstehst, kannst du bestehende besser lesen und eigene wirkungsvoll erstellen.
- Knoten (Nodes) stehen für Kategorien, Stufen oder Entitäten in deinem System. In unserem Budgetbeispiel sind „Annual Budget“, „Marketing“ und „Digital Ads“ Knoten. Quellknoten (wie „Annual Budget“) stehen typischerweise links, Zielknoten (wie „Digital Ads“) rechts – je nach Layout kann das variieren.
- Flüsse oder Verbindungen (Flows/Links) sind gerichtete Verbindungen zwischen Knoten; ihre Breite ist proportional zum dargestellten Wert. Der dicke orangefarbene Fluss vom Annual Budget zu Marketing steht für 40.000 $, während der deutlich dünnere Fluss zu Content nur 5.000 $ zeigt. Diese proportionale Breite ist das Merkmal, das Sankey-Diagramme so wirksam macht.
- Werte (Values) sind die numerischen Daten, die die Breite jedes Flusses bestimmen. Sie können Geld, Energie, Materialien, Menschen oder jede andere messbare Ressource darstellen. Das Diagramm berechnet die passende Breite automatisch und sorgt so für visuelle Genauigkeit.
- Abgänge (Drop-offs) sind spezielle Flüsse, die Verluste, Ausschuss oder Ressourcen darstellen, die das System verlassen, ohne einen Zielknoten zu erreichen. In unserem Budgetbeispiel gibt es keine Abgänge, aber in Energiediagrammen (Wärmeverluste) oder Marketing-Funnels (Absprünge) kommen sie häufig vor.
So erstellst du ein Sankey-Diagramm
Je nach Tool und technischer Erfahrung gibt es verschiedene Wege zu Sankey-Diagrammen. Wir gehen das gleiche Budgetbeispiel in Excel, Python und R durch, damit du die Methode wählen kannst, die am besten zu deinem Workflow passt.
Sankey-Diagramm in Excel
Excel hat keinen nativen Sankey-Charttyp. Du brauchst also ein Add-in von Drittanbietern. Aus meiner Erfahrung ist ChartExpo eine der populärsten und benutzerfreundlichsten Optionen.
ChartExpo-Oberfläche und Sankey-Vorschau. Abbildung: Autorin/Autor.
Bevor du das Diagramm erstellst, strukturierst du deine Daten im Source-Target-Value-Format, wobei jede Zeile eine Flussverbindung darstellt. Für unser Budgetbeispiel listest du also jede Zuweisung als eigene Zeile mit Quellkategorie, Zielkategorie und Betrag.
Sobald ChartExpo installiert ist, ist der Ablauf unkompliziert. Installiere das Add-in über den Microsoft AppSource oder den Add-in-Marktplatz in Excel. Markiere dann deinen Datenbereich inklusive Überschriften und wähle in ChartExpo die Option Sankey Chart.
Das Add-in erkennt auf Basis deiner Struktur automatisch die Spalten für Quelle, Ziel und Wert. Wie oben zu sehen, bietet ChartExpo eine Vorschau deines Diagramms sowie Optionen zum Create Chart From Selection, zur Anpassung der Visualisierung oder zum Export für Präsentationen und Berichte.
Sankey-Diagramm in Python
Python bietet hervorragende Möglichkeiten für Sankey-Diagramme. Besonders empfohlen ist Plotly wegen der Interaktivität und der professionellen Ausgabequalität. Wir setzen unser Budgetbeispiel um und reproduzieren die identische Visualisierung per Code.
Schritt 1: Daten vorbereiten
Bringe deine Daten in das von Plotly erwartete Format. Du brauchst drei Hauptbausteine: eine Liste der Knotennamen sowie Arrays mit Quellindizes, Zielindizes und Werten für jeden Fluss.
import plotly.graph_objects as go
# Define all nodes in your diagram
nodes = ["Annual Budget", "Marketing", "Operations", "R&D",
"Digital Ads", "Events", "Content", "Salaries",
"Office", "Utilities", "Software", "Equipment"]
# Define the connections (using node indices)
source_indices = [0, 0, 0, 1, 1, 1, 2, 2, 2, 3, 3]
target_indices = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11]
values = [40, 35, 25, 25, 10, 5, 20, 10, 5, 15, 10]
Die Indizes beziehen sich auf die Positionen in der Knotenliste. source_indices = [0, 0, 0] bedeutet also, dass die ersten drei Flüsse bei „Annual Budget“ (Position 0) starten.
Schritt 2: Basisdiagramm erstellen
Erstelle die Grundstruktur mit dem Sankey-Objekt von Plotly. Entscheidend sind die Knotendefinitionen und die Link-Spezifikationen.
fig = go.Figure(data=[go.Sankey(
node=dict(
label=nodes,
pad=15,
thickness=20
),
link=dict(
source=source_indices,
target=target_indices,
value=values
)
)])
So entsteht ein funktionsfähiges Sankey-Diagramm mit Standardstil. pad steuert den Abstand zwischen den Knoten, thickness die Breite der Knotenrechtecke.
Schritt 3: Styling und Feinschliff
Verbessere dein Diagramm mit Farben, optimiertem Layout und professioneller Formatierung.
# Add colors and transparency
fig.update_traces(
node_color=["#1f77b4", "#ff7f0e", "#2ca02c", "#d62728",
"#ff9999", "#ff9999", "#ff9999", "#90ee90",
"#90ee90", "#90ee90", "#ffcccb", "#ffcccb"],
link_color=["rgba(255, 127, 14, 0.4)", "rgba(44, 160, 44, 0.4)",
"rgba(214, 39, 40, 0.4)", "rgba(255, 127, 14, 0.6)",
"rgba(255, 127, 14, 0.6)", "rgba(255, 127, 14, 0.6)",
"rgba(44, 160, 44, 0.6)", "rgba(44, 160, 44, 0.6)",
"rgba(44, 160, 44, 0.6)", "rgba(214, 39, 40, 0.6)",
"rgba(214, 39, 40, 0.6)"]
)
# Update layout for better presentation
fig.update_layout(
title="Annual Budget Allocation",
font=dict(size=16, family="Arial Black", color="black"),
width=900,
height=600
)
Schritt 4: Anzeigen und Export
Zeige dein Diagramm an und speichere es für unterschiedliche Zwecke in verschiedenen Formaten.
fig.show() # Display in Jupyter notebook or browser
# Export options
fig.write_html("budget_sankey.html") # Interactive web version
fig.write_image("budget_sankey.png") # Static image
Für Webanwendungen kannst du das direkt in Dash-Apps integrieren und Sankey-Diagramme als Teil interaktiver Dashboards nutzen. Die resultierende Visualisierung entspricht genau dem Eingangsbeispiel. In unserem Video erfährst du, wie du Dashboards mit Plotly und Dash erstellst – probiere es selbst aus.
Sankey-Diagramm in R
R bietet mit dem Paket networkD3 starke Funktionen für interaktive, webtaugliche Sankey-Diagramme. Mit unseren bekannten Budgetdaten zeigen wir, wie R die gleichen professionellen Ergebnisse mit integrierter Interaktivität liefert.
networkD3 ist speziell für D3.js-basierte Netzwerkvisualisierungen in R konzipiert, darunter Sankey-Diagramme. Vorteile: automatische Interaktivität (Hover-Effekte, Zoomen), einfache Integration in R-Markdown-Berichte und reibungsloser Web-Export.
Schritt 1: Setup und Datenvorbereitung
Installiere und lade die benötigten Pakete und strukturiere deine Daten im von networkD3 erwarteten Format.
# Install required packages (run once)
install.packages(c("networkD3", "dplyr"))
# Load libraries
library(networkD3)
library(dplyr)
# Create nodes dataframe
nodes <- data.frame(
name = c("Annual Budget", "Marketing", "Operations", "R&D",
"Digital Ads", "Events", "Content", "Salaries",
"Office", "Utilities", "Software", "Equipment")
)
# Create links dataframe (note: networkD3 uses 0-based indexing)
links <- data.frame(
source = c(0, 0, 0, 1, 1, 1, 2, 2, 2, 3, 3),
target = c(1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11),
value = c(40, 35, 25, 25, 10, 5, 20, 10, 5, 15, 10)
)
Der wichtigste Unterschied zu Python: R erwartet separate Dataframes für Knoten und Links; das Links-Dataframe referenziert Knotenpositionen mit nullbasierter Indizierung.
Schritt 2: Basisdiagramm erstellen
Erstelle dein Diagramm mit sankeyNetwork() und den wichtigsten Parametern.
# Create basic Sankey diagram
sankey_plot <- sankeyNetwork(
Links = links,
Nodes = nodes,
Source = "source",
Target = "target",
Value = "value",
NodeID = "name",
units = "K USD"
)
# Display the plot
Sankey_plot
So entsteht ein interaktives Sankey-Diagramm, in dem Nutzer über Flüsse hovern, exakte Werte sehen und Knoten per Drag-and-drop neu anordnen können.
Schritt 3: Anpassung und Styling
Verleihe deinem Diagramm mit Farben, Größen und professionellem Layout den Feinschliff.
# Advanced Sankey with customization
(sankey_advanced <- sankeyNetwork(
Links = links,
Nodes = nodes,
Source = "source",
Target = "target",
Value = "value",
NodeID = "name",
units = "K USD",
fontSize = 14,
fontFamily = "Arial",
nodeWidth = 30,
nodePadding = 20,
margin = list(top = 50, right = 50, bottom = 50, left = 50),
height = 600,
width = 900
))
Schritt 4: Export und Integration
R erleichtert das Speichern deiner interaktiven Diagramme in mehreren Formaten und die Integration in Berichte.
# Save as HTML file
library(htmlwidgets)
saveWidget(sankey_advanced, "budget_sankey.html", selfcontained = TRUE)
# For R Markdown integration, simply include the plot object
# The diagram will render as an interactive widget in your document
# For static image export (optional - requires webshot2 package)
install.packages("webshot2")
library(webshot2)
webshot("budget_sankey.html", "budget_sankey.png", vwidth = 900, vheight = 600)
Interaktives Sankey-Diagramm mit dem R-Paket networkD3. Abbildung: Autorin/Autor.
Das Ergebnis liefert die gleichen visuellen Erkenntnisse wie unsere Python- und Excel-Versionen – mit integrierter Interaktivität für eine noch tiefere Exploration.
Alternativen und Vergleiche zu Sankey-Diagrammen
Sankey-Diagramme sind ideal, wenn es klare gerichtete Beziehungen zwischen Kategorien gibt und die Größenordnung der Flüsse wichtiger ist als präzise Vergleiche. In anderen Fällen sind jedoch andere Visualisierungen besser geeignet.
Wann du auf Sankey-Diagramme verzichten solltest
Verzichte auf Sankey-Diagramme, wenn es zwischen deinen Kategorien keinen gerichteten Fluss gibt. Wenn deine Daten nur Gruppen oder Klassifikationen ohne Übergänge zeigen, vermitteln Balken- oder Kreisdiagramme die Aussage klarer. Ein Marktanteilsvergleich zwischen Unternehmen beinhaltet z. B. keinen Fluss – ein Balkendiagramm ist hier sinnvoller.
Nutze sie nicht, wenn du exakte Zahlenvergleiche brauchst. Sankey-Diagramme zeigen Größenordnungen gut, aber die variierenden Breiten erschweren präzise Ablesungen. Wenn Stakeholder genaue Prozentsätze oder Beträge vergleichen müssen, sind Tabellen oder Balkendiagramme besser geeignet.
Wähle Alternativen, wenn deine Daten zu komplex werden und das Diagramm überladen. Bei mehr als 10–15 Knoten oder stark vernetzten Flüssen kann die Darstellung unübersichtlich werden; kreuzende Linien erschweren das Verfolgen einzelner Pfade.
Greife zu einfacheren Visualisierungen, wenn dein Publikum mit Sankey-Diagrammen nicht vertraut ist. Da sie seltener sind als Balken- oder Liniendiagramme, kann das Verständnis des Formats vom Inhalt ablenken. In Präsentationen für ein breites Publikum bleib bei vertrauten Diagrammtypen – außer der Flussbezug ist zentral für deine Botschaft.
Bessere Alternativen für bestimmte Szenarien
Alluvialdiagramme eignen sich besser für kategorische oder zeitbezogene Flüsse, wenn du Veränderungen über mehrere Zeitpunkte oder Stufen verfolgst. Während Sankey-Diagramme Mengenflüsse zu einem Zeitpunkt zeigen, machen Alluvialdiagramme deutlich, wie sich Kategorien entwickeln. Beispiele sind Wählerwanderungen zwischen Parteien über mehrere Wahlen oder Fachwechsel von Studierenden während des Studiums.
Parallele Koordinaten sind besser, um multivariate Daten gleichzeitig über mehrere Dimensionen zu vergleichen. Sie sind ideal, wenn du viele Variablen pro Datenpunkt hast und Cluster oder Ausreißer erkennen willst. Etwa der Vergleich von Autos nach Preis, Verbrauch, Sicherheitsrating und Performance – dafür sind parallele Koordinaten sinnvoller als eine erzwungene Flussdarstellung.
Bump-Charts zeigen Rangveränderungen im Zeitverlauf klarer als Sankey- oder Alluvialdiagramme. Wenn du belegst, wie Entitäten in Rankings auf- oder absteigen, machen Bump-Charts die Entwicklung ohne die visuelle Komplexität von Flüssen sichtbar. Beispiele: Marktpositionen von Unternehmen über Quartale oder Tabellenstände von Teams über Saisons.
Mehr dazu findest du im Blogbeitrag Top 5 Business Intelligence Courses to Take on DataCamp, der dir Orientierung für wichtige BI-Tools gibt.
Fazit
Gute Visualisierung hängt von der passenden Wahl für deinen Use Case ab. Nutze Sankey-Diagramme, wenn gerichtete Flussbeziehungen wichtiger sind als exakte Zahlenvergleiche und wenn dein Publikum die bedeutendsten Flüsse in einem System schnell erkennen soll.
Wenn du über Sankey-Diagramme hinausgehen willst, liefert unser Blogbeitrag 10 Data Visualization Project Ideas for All Levels praktische Projektideen in verschiedenen Schwierigkeitsstufen, um dein Visualisierungsporfolio auszubauen. Die Projekte schärfen dein kritisches Denken und liefern greifbare Ergebnisse deiner Visualisierungskompetenz.
FAQs
Was ist der Unterschied zwischen einem Sankey-Diagramm und einem Flowchart?
Während Flowcharts Prozessschritte und Entscheidungspunkte zeigen, visualisieren Sankey-Diagramme explizit den Fluss und die Menge von Ressourcen, Energie oder Daten zwischen Stufen. Die Pfeilbreite in Sankey-Diagrammen ist proportional zu den gemessenen Werten, wohingegen Flowcharts die Prozesslogik statt Mengen in den Fokus stellen.
Welche Daten eignen sich am besten für Sankey-Diagramme?
Sankey-Diagramme eignen sich am besten für flussbasierte Daten, die Bewegungen oder Umwandlungen zwischen Stufen zeigen – etwa Energieverteilung, Website-Conversions, Lieferkettenflüsse oder Budgetzuweisungen. Für rein kategoriale Daten ohne gerichtete Beziehungen sind sie nicht geeignet.
Welche guten Online-Tools gibt es zum Erstellen von Sankey-Diagrammen ohne Code?
Für webbasierte Lösungen bietet SankeyMATIC eine kostenlose, einfache Oberfläche für grundlegende Diagramme, während Flourish erweiterte Funktionen und Interaktivität für professionelle Präsentationen bereitstellt. Google Charts und Highcharts sind ideal für Entwickler, die Sankey-Diagramme in Websites einbetten möchten, und Visual Paradigm bietet umfassende Diagrammfunktionen als Teil einer größeren Business-Suite.
Wann sollte ich auf ein Sankey-Diagramm verzichten?
Vermeide Sankey-Diagramme, wenn du präzise Zahlenvergleiche brauchst (da Flussbreiten nicht exakt messbar sind), wenn zu viele Kategorien visuelles Chaos erzeugen, oder wenn es keinen gerichteten Fluss zwischen deinen Datenpunkten gibt. Nutze bei einem unbedarften Publikum einfachere Alternativen, damit das Format nicht von der Botschaft ablenkt.
Wie gehe ich in einem Sankey-Diagramm mit negativen Werten oder Verlusten um?
Sankey-Diagramme zeigen in der Regel keine negativen Werte, da die Pfeilbreite positive Mengen repräsentiert. Stelle Verluste stattdessen als separate ausgehende Flüsse von Knoten dar oder nutze Abgänge (Drop-offs), die keinen Zielknoten haben, um Ausschuss oder Verlust zu visualisieren.
Was ist der Unterschied zwischen Sankey- und Alluvialdiagrammen?
Sankey-Diagramme fokussieren auf Flussmengen zu einem Zeitpunkt, während Alluvialdiagramme zeigen, wie sich kategoriale Daten über mehrere Zeitpunkte oder Stufen verändern. Für Wanderungen, Kategoriewechsel oder Entwicklungen im Zeitverlauf sind Alluvialdiagramme besser geeignet.

