matplotlib: Diagramme mit Python zeichnen
Kurz: matplotlib ist die Standardbibliothek für Diagramme in Python: Linien, Balken, Streudiagramme und mehr, direkt aus Listen oder pandas-Tabellen.
Genauer: Zahlen werden erst durch Bilder verständlich. matplotlib erzeugt Diagramme für Berichte, Notebooks und Veröffentlichungen. Auf ihm bauen seaborn (schönere Statistik-Diagramme) und die Plot-Funktionen von pandas auf.
Im Detail
Erstes Diagramm
import matplotlib.pyplot as plt
monate = ["Jan", "Feb", "Mär", "Apr"]
umsatz = [120, 150, 90, 180]
fig, ax = plt.subplots(figsize=(6, 3))
ax.plot(monate, umsatz, marker="o", label="Umsatz")
ax.set_title("Umsatz pro Monat")
ax.set_xlabel("Monat")
ax.set_ylabel("Euro")
ax.grid(True, alpha=0.3)
ax.legend()
fig.savefig("umsatz.png", dpi=150, bbox_inches="tight")
plt.show()Mit fig, ax = plt.subplots() arbeitest du objektorientiert (empfohlen): fig ist die Abbildung, ax die Zeichenfläche.
Wichtige Diagrammtypen
- Linie
ax.plot: Verläufe über die Zeit. - Balken
ax.bar/ax.barh: Kategorien vergleichen. - Streudiagramm
ax.scatter: Zusammenhang zweier Größen. - Histogramm
ax.hist: Verteilung von Werten. - Kasten (Boxplot)
ax.boxplot: Streuung und Ausreißer. - Kreis
ax.pie: Anteile (sparsam einsetzen, Balken sind meist besser lesbar). - Mehrere Felder:
plt.subplots(2, 2).
Mit pandas
import pandas as pd
df = pd.read_csv("verkauf.csv")
df.groupby("monat")["umsatz"].sum().plot(kind="bar")So geht es oft in einer Zeile. Für interaktive Diagramme gibt es Plotly, Altair, Bokeh; im Browser eignet sich Chart.js oder D3.
Gute Diagramme
Achsen beschriften (mit Einheiten), einen klaren Titel wählen, Farben sparsam und farbenblind-freundlich einsetzen, bei Balkendiagrammen bei Null beginnen, überladene Gitter und 3D-Effekte vermeiden und pro Diagramm eine Aussage zeigen. Speichere Abbildungen in ausreichender Auflösung oder als SVG/PDF (vektorbasiert).
Siehe auch: Datenvisualisierung, pandas, Conda und Jupyter, SVG-Vektorgrafiken