In dieser Schritt-für-Schritt-Anleitung schauen wir uns an, was ein Gantt‑Diagramm ist, warum und wann sich solche Visualisierungen lohnen, wie du in Python mit matplotlib ein Gantt‑Diagramm erstellst und wie du es weiter anpasst. Unterwegs bauen wir mehrere Gantt‑Diagramm‑Beispiele in matplotlib.
Was ist ein Gantt‑Diagramm und warum ist es nützlich?
Ein Gantt‑Diagramm ist eine spezielle Form eines Balkendiagramms, mit dem sich ein vollständiger Plan für Projektplanung und ‑steuerung abbilden lässt. Üblicherweise zeigt es Aufgabenbezeichnungen, Start- und Enddaten, die zugeordneten Teams, den Fertigstellungsgrad in Prozent oder als Bruchteil, die Performance je Team sowie wichtige Meilensteine.
Die Aufgabennamen stehen entlang der y‑Achse und sind meist nach Startdatum chronologisch von oben nach unten sortiert. Die x‑Achse zeigt Zeiträume; die Breite jedes Balkens entspricht der Dauer der jeweiligen Aufgabe.
Da ein Gantt‑Diagramm im Kern ein horizontales Balkendiagramm ist, können wir es in vielen Python‑Bibliotheken für Datenvisualisierung erstellen, etwa in matplotlib, Plotly, Bokeh und Altair. In diesem Tutorial konzentrieren wir uns auf die Erstellung mit der populärsten Bibliothek – matplotlib.
So erstellst du ein Gantt‑Diagramm in Python mit Matplotlib
Mit barh()
Starten wir mit einem einfachen Gantt‑Diagramm in matplotlib über die Methode barh() von matplotlib.pyplot.
Zuerst laden wir die benötigten Bibliotheken:
import pandas as pd
import numpy as np
import matplotlib
import matplotlib.pyplot as plt
import datetime as dtBereitgestellt von
Als Nächstes erstellen wir Beispieldaten:
df = pd.DataFrame({'task':['A','B','C','D','E','F','G','H','I','J','K','L'],'team':['R&D','Accounting','Sales','Sales','IT','R&D','IT','Sales','Accounting','Accounting','Sales','IT'],'start': pd.to_datetime(['20 Oct 2022','24 Oct 2022','26 Oct 2022','31 Oct 2022','3 Nov 2022','7 Nov 2022','10 Nov 2022','14 Nov 2022','18 Nov 2022','23 Nov 2022','28 Nov 2022','30 Nov 2022']),'end': pd.to_datetime(['31 Oct 2022','28 Oct 2022','31 Oct 2022','8 Nov 2022','9 Nov 2022','18 Nov 2022','17 Nov 2022','22 Nov 2022','23 Nov 2022','1 Dec 2022','5 Dec 2022','5 Dec 2022']),'completion_frac':[1,1,1,1,1,0.95,0.7,0.35,0.1,0,0,0]})print(df)Bereitgestellt von
Ausgabe:
task team start end completion_frac
0 A R&D 2022-10-202022-10-311.001 B Accounting 2022-10-242022-10-281.002 C Sales 2022-10-262022-10-311.003 D Sales 2022-10-312022-11-081.004 E IT 2022-11-032022-11-091.005 F R&D 2022-11-072022-11-180.956 G IT 2022-11-102022-11-170.707 H Sales 2022-11-142022-11-220.358 I Accounting 2022-11-182022-11-230.109 J Accounting 2022-11-232022-12-010.0010 K Sales 2022-11-282022-12-050.0011 L IT 2022-11-302022-12-050.00Bereitgestellt von
Um das Gantt‑Diagramm einfacher zu erstellen, berechnen wir vier zusätzliche Spalten, die Folgendes abbilden:
Wie viele Tage seit Projektbeginn bis zum Startdatum jeder Aufgabe vergangen sind bzw. vergehen würden:
df['days_to_start']=(df['start']- df['start'].min()).dt.daysBereitgestellt von
Wie viele Tage seit Projektbeginn bis zum Enddatum jeder Aufgabe vergangen sind bzw. vergehen würden:
df['days_to_end']=(df['end']- df['start'].min()).dt.daysBereitgestellt von
Die Dauer jeder Aufgabe, inklusive Start- und Enddatum:
df['task_duration']= df['days_to_end']- df['days_to_start']+1# auch das Enddatum einschließenBereitgestellt von
Den Fertigstellungsstatus jeder Aufgabe, von einem Bruchteil in einen Anteil der zugewiesenen Tage übersetzt:
df['completion_days']= df['completion_frac']* df['task_duration']Bereitgestellt von
task team start end completion_frac days_to_start \
0 A R&D 2022-10-202022-10-311.0001 B Accounting 2022-10-242022-10-281.0042 C Sales 2022-10-262022-10-311.0063 D Sales 2022-10-312022-11-081.00114 E IT 2022-11-032022-11-091.00145 F R&D 2022-11-072022-11-180.95186 G IT 2022-11-102022-11-170.70217 H Sales 2022-11-142022-11-220.35258 I Accounting 2022-11-182022-11-230.10299 J Accounting 2022-11-232022-12-010.003410 K Sales 2022-11-282022-12-050.003911 L IT 2022-11-302022-12-050.0041
days_to_end task_duration completion_days
0111212.001855.0021166.0031999.0042077.005291211.4062885.6073393.1583460.6094290.00104680.00114660.00Bereitgestellt von
Jetzt können wir ein grundlegendes Gantt‑Diagramm in matplotlib erzeugen:
plt.barh(y=df['task'], width=df['task_duration'], left=df['days_to_start'])
plt.show()Bereitgestellt von
Ausgabe:
Diese Grafik braucht noch einige Anpassungen, damit wir maximalen Informationsgehalt herausholen:
Aussagekräftigen Titel und x‑Beschriftungen (Daten) hinzufügen
y‑Achse invertieren, damit die Aufgaben chronologisch von oben nach unten sortiert sind
Raster hinzufügen
Aufgaben nach Team einfärben
Legende anzeigen
Fertigstellungsstatus ergänzen
Diese Verfeinerungen setzen wir gleich um. Zuvor schauen wir uns jedoch eine Alternative für das grundlegende Diagramm an.
Verwendung von broken_barh()
Wenn einige Aufgaben zwei oder mehr Teilaufgaben über die Zeit verteilt enthalten, sollten wir die Methode broken_barh() nutzen.
Um Beispielsdaten für diesen Ansatz zu haben, machen wir Folgendes:
Wir nehmen aus dem ursprünglichen DataFrame nur die Aufgaben des Sales‑Teams (die Spalte completion_frac ignorieren wir zunächst).
Wir benennen die Spalten start und end der Einfachheit halber in start_1 und end_1 um.
Wir fügen einigen Aufgaben weitere Teilaufgaben hinzu.
Für jede Teilaufgabe berechnen wir drei Spalten wie oben beschrieben, nämlich:
Wie viele Tage seit Gesamtprojektstart bis zum Startdatum der Teilaufgabe vergehen.
Wie viele Tage seit Gesamtprojektstart bis zum Enddatum der Teilaufgabe vergehen.
Die Dauer der Teilaufgabe, inklusive Start- und Enddatum.
# 1
df2 = df[df['team']=='Sales'][['task','team','start','end']]# 2
df2.rename(columns={'start':'start_1','end':'end_1'}, inplace=True)
df2.reset_index(drop=True, inplace=True)# 3
df2['start_2']= pd.to_datetime([None,'10 Nov 2022','25 Nov 2022',None])
df2['end_2']= pd.to_datetime([None,'14 Nov 2022','28 Nov 2022',None])
df2['start_3']= pd.to_datetime([None,None,'1 Dec 2022',None])
df2['end_3']= pd.to_datetime([None,None,'5 Dec 2022',None])# 4for i in[1,2,3]:
suffix ='_'+str(i)
df2['days_to_start'+ suffix]=(df2['start'+ suffix]- df2['start_1'].min()).dt.days
df2['days_to_end'+ suffix]=(df2['end'+ suffix]- df2['start_1'].min()).dt.days
df2['task_duration'+ suffix]= df2['days_to_end'+ suffix]- df2['days_to_start'+ suffix]+1print(df2)Bereitgestellt von
Ausgabe:
task team start_1 end_1 start_2 end_2 start_3 \
0 C Sales 2022-10-262022-10-31 NaT NaT NaT
1 D Sales 2022-10-312022-11-082022-11-102022-11-14 NaT
2 H Sales 2022-11-142022-11-222022-11-252022-11-282022-12-013 K Sales 2022-11-282022-12-05 NaT NaT NaT
end_3 days_to_start_1 days_to_end_1 task_duration_1 \
0 NaT 0561 NaT 513922022-12-05192793 NaT 33408
days_to_start_2 days_to_end_2 task_duration_2 days_to_start_3 \
0 NaN NaN NaN NaN
115.019.05.0 NaN
230.033.04.036.03 NaN NaN NaN NaN
days_to_end_3 task_duration_3
0 NaN NaN
1 NaN NaN
240.05.03 NaN NaN Bereitgestellt von
Jetzt hat Aufgabe D zwei Teilaufgaben, Aufgabe H drei, und die Aufgaben C und K jeweils eine. Für D und H verwenden wir daher die Methode broken_barh(). Da ihre Syntax etwas weniger intuitiv ist als bei barh(), schauen wir uns die wichtigsten Parameter und ihre Form an. Pflichtparameter von broken_barh() sind:
xranges – eine Sequenz von Tupeln im Format (xmin, xwidth) für Start und Ausdehnung jedes Balkens. Jeder Balken steht hier für eine Teilaufgabe. Dieser Parameter zeigt also Startdatum und Dauer jeder Teilaufgabe.
yrange – ein Tupel im Format (ymin, yheight) für y‑Position und Höhe jedes Balkens.
Jetzt plotten wir unser „gebrochenes“ Gantt‑Diagramm. Der Ablauf:
Figure mit Subplots erstellen.
Über die Zeilen des DataFrames iterieren und prüfen, ob die Aufgabe eine, zwei oder drei Teilaufgaben hat. Dann je nach Fall:
Eine Teilaufgabe: Einen Balken mit barh() plotten, wie zuvor.
Zwei Teilaufgaben: Zwei Balken mit broken_barh() plotten.
Drei Teilaufgaben: Drei Balken mit broken_barh() plotten.
Grundlegende Anpassungen vornehmen: y‑Ticks setzen und beschriften.
task team start end completion_frac days_to_start \
0 A R&D 2022-10-202022-10-311.0001 B Accounting 2022-10-242022-10-281.0042 C Sales 2022-10-262022-10-311.0063 D Sales 2022-10-312022-11-081.00114 E IT 2022-11-032022-11-091.00145 F R&D 2022-11-072022-11-180.95186 G IT 2022-11-102022-11-170.70217 H Sales 2022-11-142022-11-220.35258 I Accounting 2022-11-182022-11-230.10299 J Accounting 2022-11-232022-12-010.003410 K Sales 2022-11-282022-12-050.003911 L IT 2022-11-302022-12-050.0041
days_to_end task_duration completion_days
0111212.001855.0021166.0031999.0042077.005291211.4062885.6073393.1583460.6094290.00104680.00114660.00Bereitgestellt von
und unserem ersten Gantt‑Diagramm:
plt.barh(y=df['task'], width=df['task_duration'], left=df['days_to_start'])
plt.show()Bereitgestellt von
Ausgabe:
Jetzt wollen wir das Diagramm gezielt anpassen, um mehr Erkenntnisse herauszuholen.
In der obigen Version fehlt noch eine Legende, die zeigt, welche Farbe zu welchem Team gehört. Dafür erstellen wir Patches – 2D‑Objekte in matplotlib mit vordefinierter Füllfarbe. Wir nutzen die Klasse matplotlib.patches.Patch und erzeugen eine Liste von Patches, je Team eines, passend eingefärbt:
patches =[]for team in team_colors:
patches.append(matplotlib.patches.Patch(color=team_colors[team]))Bereitgestellt von
Bisher haben wir die zu Beginn berechnete Spalte completion_days noch nicht genutzt. Jetzt verwenden wir sie, um den Status jeder Aufgabe sichtbar zu machen.
Technisch fügen wir zu jedem bestehenden Balken einen zweiten darüber liegenden hinzu. Der untere Balken zeigt die gesamte, zugewiesene Dauer der Aufgabe in Tagen, der obere den aktuellen Fertigstellungsstand in Tagen.
Beide Balken haben pro Aufgabe dieselbe Teamfarbe, aber der untere ist heller als der obere, damit der Unterschied klar erkennbar ist.
Anders gesagt: Wenn ein Team bei einer Aufgabe über Plan liegt, wirken beide Balken zusammen so, als hätte das Team bereits mehr Tage daran gearbeitet als vorgesehen (die Aufgabe wird voraussichtlich vor der Deadline fertig).
Umgekehrt zeigt eine Unterperformance, dass weniger Tage als geplant aufgelaufen sind (die Aufgabe wird voraussichtlich nach der Deadline fertig).
Wir sehen: Die Teams kommen unterschiedlich schnell voran – typisch für reale Projekte. Um noch mehr Kontext zu bekommen, nehmen wir an, heute ist der 17. November 2022, und markieren dieses Datum im Diagramm:
fig, ax = plt.subplots()for index, row in df.iterrows():
plt.barh(y=row['task'], width=row['task_duration'], left=row['days_to_start']+1, color=team_colors[row['team']], alpha=0.4)
plt.barh(y=row['task'], width=row['completion_days'], left=row['days_to_start']+1, color=team_colors[row['team']])
plt.title('Project Management Schedule of Project X', fontsize=15)
plt.gca().invert_yaxis()
ax.set_xticks(xticks)
ax.set_xticklabels(xticklabels[::7])
ax.xaxis.grid(True, alpha=0.5)
ax.legend(handles=patches, labels=team_colors.keys(), fontsize=11)# Aktuelles Datum im Diagramm markieren
ax.axvline(x=29, color='r', linestyle='dashed')
ax.text(x=29.5, y=11.5, s='17/11', color='r')
plt.show()Bereitgestellt von
Ausgabe:
Daraus lassen sich folgende Beobachtungen zum Status von Project X ableiten:
R&D liegt bei Aufgabe F über Plan und wird sie voraussichtlich vor der Deadline abschließen.
IT liegt bei Aufgabe G in Verzug und braucht wahrscheinlich Unterstützung.
Sales arbeitet bei Aufgabe H im Plan.
Accounting hat Aufgabe I früher als geplant gestartet.
Solche Erkenntnisse helfen Teamleads und Projektleitung, den Zeitplan anzupassen und Ressourcen rechtzeitig umzuverteilen, um Verzögerungen bei Deliverables zu vermeiden.
Weitere mögliche Anpassungen
Wir können unser Gantt‑Diagramm in matplotlib weiter anreichern, zum Beispiel:
Prozentuale Fertigstellung direkt auf den Balken anzeigen.
Einige Aufgaben in Teilaufgaben aufspalten (technisch bereits oben gezeigt).
Abhängige Aufgaben annotieren.
Wichtige Meilensteine und Deadlines markieren.
Wochenenden und Feiertage hervorheben.
Balken nach Team oder Aufgabentyp sortieren.
Minor Ticks auf der x‑Achse für mehr Detailtiefe hinzufügen.
Formatierung und Layout insgesamt verfeinern.
Wichtig ist jedoch, das Diagramm übersichtlich zu halten. Wie bei jeder Visualisierung gilt es, ein gutes Gleichgewicht zwischen Informationsdichte, Lesbarkeit des Plots und Verständlichkeit des Codes zu finden.
Erstelle dein eigenes Gantt‑Diagramm in Python mit Matplotlib
Zusammengefasst haben wir in diesem Tutorial behandelt:
was ein Gantt‑Diagramm ist
welche Informationen es zeigt
wann es eingesetzt wird
verschiedene Wege und Feinheiten, Gantt‑Diagramme mit matplotlib zu erstellen
wie du in Python mit matplotlib ein Gantt‑Diagramm erstellst
wie du es weiter anpasst, um mehr Insights zu gewinnen
wie du das Endergebnis interpretierst.
Außerdem haben wir uns verschiedene Gantt‑Beispiele und den Schritt‑für‑Schritt‑Prozess zu ihrer Erstellung angesehen.
Für einen integrierten Lernpfad rund um überzeugende und informative Diagramme in Python, wirf einen Blick auf unseren Data Visualization with Python Skill Track.
Mach dich mit Python-Datenstrukturen vertraut: Lerne mehr über Datentypen und primitive sowie nicht-primitive Datenstrukturen wie Strings, Listen, Stapel usw.
Lerne, wie du Python-Listen mit Techniken wie Slicing, List Comprehensions und itertools aufteilen kannst. Finde heraus, wann du welche Methode für die beste Datenverarbeitung nutzen solltest.
In dieser Schritt-für-Schritt-Anleitung schauen wir uns an, was ein Gantt‑Diagramm ist, warum und wann sich solche Visualisierungen lohnen, wie du in Python mit matplotlib ein Gantt‑Diagramm erstellst und wie du es weiter anpasst. Unterwegs bauen wir mehrere Gantt‑Diagramm‑Beispiele in matplotlib.
Was ist ein Gantt‑Diagramm und warum ist es nützlich?
Ein Gantt‑Diagramm ist eine spezielle Form eines Balkendiagramms, mit dem sich ein vollständiger Plan für Projektplanung und ‑steuerung abbilden lässt. Üblicherweise zeigt es Aufgabenbezeichnungen, Start- und Enddaten, die zugeordneten Teams, den Fertigstellungsgrad in Prozent oder als Bruchteil, die Performance je Team sowie wichtige Meilensteine.
Die Aufgabennamen stehen entlang der y‑Achse und sind meist nach Startdatum chronologisch von oben nach unten sortiert. Die x‑Achse zeigt Zeiträume; die Breite jedes Balkens entspricht der Dauer der jeweiligen Aufgabe.
Da ein Gantt‑Diagramm im Kern ein horizontales Balkendiagramm ist, können wir es in vielen Python‑Bibliotheken für Datenvisualisierung erstellen, etwa in matplotlib, Plotly, Bokeh und Altair. In diesem Tutorial konzentrieren wir uns auf die Erstellung mit der populärsten Bibliothek – matplotlib.
Wenn du alternative Wege zur Erstellung eines Gantt‑Diagramms und anderer Diagrammtypen in Python kennenlernen möchtest, schau dir den Kurs Introduction to Data Visualization with Plotly in Python an. Möchtest du deine matplotlib‑Kompetenzen auffrischen oder ausbauen, helfen dir diese Kurse: Introduction to Data Visualization with Matplotlib und Python for MATLAB Users.
So erstellst du ein Gantt‑Diagramm in Python mit Matplotlib
Mit barh()
Starten wir mit einem einfachen Gantt‑Diagramm in matplotlib über die Methode
barh()vonmatplotlib.pyplot.Zuerst laden wir die benötigten Bibliotheken:
Als Nächstes erstellen wir Beispieldaten:
Ausgabe:
Um das Gantt‑Diagramm einfacher zu erstellen, berechnen wir vier zusätzliche Spalten, die Folgendes abbilden:
Prüfen wir das Ergebnis:
Ausgabe:
Jetzt können wir ein grundlegendes Gantt‑Diagramm in matplotlib erzeugen:
Ausgabe:
Diese Grafik braucht noch einige Anpassungen, damit wir maximalen Informationsgehalt herausholen:
Diese Verfeinerungen setzen wir gleich um. Zuvor schauen wir uns jedoch eine Alternative für das grundlegende Diagramm an.
Verwendung von
broken_barh()Wenn einige Aufgaben zwei oder mehr Teilaufgaben über die Zeit verteilt enthalten, sollten wir die Methode
broken_barh()nutzen.Um Beispielsdaten für diesen Ansatz zu haben, machen wir Folgendes:
completion_fracignorieren wir zunächst).startundendder Einfachheit halber instart_1undend_1um.Ausgabe:
Jetzt hat Aufgabe D zwei Teilaufgaben, Aufgabe H drei, und die Aufgaben C und K jeweils eine. Für D und H verwenden wir daher die Methode
broken_barh(). Da ihre Syntax etwas weniger intuitiv ist als beibarh(), schauen wir uns die wichtigsten Parameter und ihre Form an. Pflichtparameter vonbroken_barh()sind:xranges– eine Sequenz von Tupeln im Format (xmin,xwidth) für Start und Ausdehnung jedes Balkens. Jeder Balken steht hier für eine Teilaufgabe. Dieser Parameter zeigt also Startdatum und Dauer jeder Teilaufgabe.yrange– ein Tupel im Format (ymin,yheight) für y‑Position und Höhe jedes Balkens.Jetzt plotten wir unser „gebrochenes“ Gantt‑Diagramm. Der Ablauf:
barh()plotten, wie zuvor.broken_barh()plotten.broken_barh()plotten.Ausgabe:
Im obigen Code könnten wir
broken_barh()auch für Aufgaben mit nur einer Teilaufgabe verwenden. Dazu ersetzen wir diese Zeile:durch diese:
So wird der Code einheitlicher und besser lesbar.
So passt du ein Gantt‑Diagramm in Matplotlib an
Zurück zu unserem ersten DataFrame:
Ausgabe:
und unserem ersten Gantt‑Diagramm:
Ausgabe:
Jetzt wollen wir das Diagramm gezielt anpassen, um mehr Erkenntnisse herauszuholen.
Wenn du tiefer in das Anpassen von Plots mit matplotlib einsteigen willst, empfehlen wir: Matplotlib Tutorial: Python Plotting und das Matplotlib Cheat Sheet: Plotting in Python.
Grundlegende Anpassungen am Gantt‑Diagramm
Dazu zählen:
Plot‑Titel hinzufügen
Ein aussagekräftiger Titel ist Pflicht – auch beim Gantt‑Diagramm. Nehmen wir an, unser Projekt heißt Project X:
Ausgabe:
Achsen anpassen und formatieren und Raster hinzufügen
Aufbauend auf dem vorherigen Code führen wir Folgendes aus:
ax‑Objekt zu arbeiten.Ausgabe:
Wenn du mehr Übung in Python brauchst, um Code leichter zu lesen und zu schreiben, ist unser Kurs Intermediate Python ein guter Startpunkt.
Aufgaben nach Team einfärben
Jetzt färben wir jeden Balken (jede Aufgabe) entsprechend dem zuständigen Team ein. Dazu gehen wir so vor:
Ausgabe:
Eine Legende hinzufügen
In der obigen Version fehlt noch eine Legende, die zeigt, welche Farbe zu welchem Team gehört. Dafür erstellen wir Patches – 2D‑Objekte in matplotlib mit vordefinierter Füllfarbe. Wir nutzen die Klasse matplotlib.patches.Patch und erzeugen eine Liste von Patches, je Team eines, passend eingefärbt:
Jetzt fügen wir die Legende dem Chart hinzu:
Ausgabe:
So ist das Gantt‑Diagramm deutlich aussagekräftiger.
Weitere Techniken, um Ästhetik und Lesbarkeit von Plots zu verbessern, findest du im Kurs Improving Your Data Visualizations in Python.
Fertigstellungsstatus hinzufügen
Bisher haben wir die zu Beginn berechnete Spalte
completion_daysnoch nicht genutzt. Jetzt verwenden wir sie, um den Status jeder Aufgabe sichtbar zu machen.Technisch fügen wir zu jedem bestehenden Balken einen zweiten darüber liegenden hinzu. Der untere Balken zeigt die gesamte, zugewiesene Dauer der Aufgabe in Tagen, der obere den aktuellen Fertigstellungsstand in Tagen.
Beide Balken haben pro Aufgabe dieselbe Teamfarbe, aber der untere ist heller als der obere, damit der Unterschied klar erkennbar ist.
Anders gesagt: Wenn ein Team bei einer Aufgabe über Plan liegt, wirken beide Balken zusammen so, als hätte das Team bereits mehr Tage daran gearbeitet als vorgesehen (die Aufgabe wird voraussichtlich vor der Deadline fertig).
Umgekehrt zeigt eine Unterperformance, dass weniger Tage als geplant aufgelaufen sind (die Aufgabe wird voraussichtlich nach der Deadline fertig).
Ausgabe:
Wir sehen: Die Teams kommen unterschiedlich schnell voran – typisch für reale Projekte. Um noch mehr Kontext zu bekommen, nehmen wir an, heute ist der 17. November 2022, und markieren dieses Datum im Diagramm:
Ausgabe:
Daraus lassen sich folgende Beobachtungen zum Status von Project X ableiten:
Solche Erkenntnisse helfen Teamleads und Projektleitung, den Zeitplan anzupassen und Ressourcen rechtzeitig umzuverteilen, um Verzögerungen bei Deliverables zu vermeiden.
Weitere mögliche Anpassungen
Wir können unser Gantt‑Diagramm in matplotlib weiter anreichern, zum Beispiel:
Wichtig ist jedoch, das Diagramm übersichtlich zu halten. Wie bei jeder Visualisierung gilt es, ein gutes Gleichgewicht zwischen Informationsdichte, Lesbarkeit des Plots und Verständlichkeit des Codes zu finden.
Erstelle dein eigenes Gantt‑Diagramm in Python mit Matplotlib
Zusammengefasst haben wir in diesem Tutorial behandelt:
Außerdem haben wir uns verschiedene Gantt‑Beispiele und den Schritt‑für‑Schritt‑Prozess zu ihrer Erstellung angesehen.
Für einen integrierten Lernpfad rund um überzeugende und informative Diagramme in Python, wirf einen Blick auf unseren Data Visualization with Python Skill Track.