Annotationen, Text und Referenzlinien
Wichtige Werte mit ax.annotate markieren, Notizen mit ax.text hinzufügen und Ziele mit axhline kennzeichnen.
Einführung
Ein gutes Diagramm zeigt dem Leser, wohin er schauen soll. ax.annotate schreibt eine Beschriftung mit Pfeil auf einen Datenpunkt, ax.text platziert freien Text und ax.axhline oder ax.axvline zeichnet eine Referenzlinie wie einen Durchschnitt oder ein Ziel.
xy ist der Punkt, auf den der Pfeil zeigt, und xytext die Position der Beschriftung; arrowprops zeichnet den Pfeil. Bei Textkategorien sind die x-Positionen 0, 1, 2 usw., daher liegt der beste Monat bei x = best. axhline zeichnet den Durchschnitt über die ganze Breite, und ax.text erklärt die gestrichelte Linie.
Interaktive Visualisierung
Wähle den Punkt für die Annotation, entferne Pfeil und Durchschnittslinie und sieh, welche Codezeile welchen Teil zeichnet.
Ausführbares Matplotlib-Beispiel
import matplotlib.pyplot as plt
months = ["Jan", "Feb", "Mar", "Apr", "May", "Jun"]
sales = [12, 15, 14, 22, 19, 17]
best = sales.index(max(sales))
average = sum(sales) / len(sales)
fig, ax = plt.subplots(figsize=(7, 4))
ax.plot(months, sales, marker="o")
ax.annotate(f"Best month: {sales[best]}k", xy=(best, sales[best]), xytext=(best + 0.5, sales[best] + 1.5),
arrowprops=dict(arrowstyle="->"))
ax.axhline(average, color="gray", linestyle="--")
ax.text(0, average + 0.4, f"average {average:.1f}k", color="gray")
ax.set_ylim(10, 25)
ax.set_title("Sales by month")
plt.show()
