EMZETT.
Login

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