Matplotlib für Profis

Zwei y-Achsen mit twinx

Zwei Größen mit unterschiedlichen Einheiten in einem Diagramm zeichnen, mit einer zweiten y-Achse aus ax.twinx.

Einführung

Regen in Millimetern und Temperatur in Grad teilen keine Skala: Auf einer Achse wirkt eine davon flach. ax.twinx erzeugt eine zweite Axes, die die x-Achse teilt, aber rechts eine eigene y-Achse hat.

ax1 zeichnet die Regenbalken mit der y-Achse links. ax2 = ax1.twinx() teilt die Monate, bekommt aber rechts eine neue y-Achse für die Temperatur. Wenn jede Achsenbeschriftung die Farbe ihrer Daten hat, sieht der Leser, welche Achse zu welcher Reihe gehört. Setze zwei Achsen sparsam ein: der Vergleich der Reihen wird leicht falsch gelesen.

Interaktive Visualisierung

Schalte die zweite y-Achse aus, um zu sehen, warum sie hilft: auf einer gemeinsamen Skala wird die Temperaturlinie unten zusammengedrückt.

Ausführbares Matplotlib-Beispiel

Matplotlib
Code ausführen →
main.py
import matplotlib.pyplot as plt

months = ["Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec"]
temperature = [3, 5, 9, 14, 18, 22, 25, 24, 20, 14, 8, 4]
rain = [60, 50, 55, 45, 60, 70, 80, 85, 60, 75, 80, 70]

fig, ax1 = plt.subplots(figsize=(7, 4))
ax1.bar(months, rain, color="tab:blue", alpha=0.4)
ax1.set_ylabel("Rain (mm)", color="tab:blue")

ax2 = ax1.twinx()
ax2.plot(months, temperature, color="tab:red", marker="o")
ax2.set_ylabel("Temperature (°C)", color="tab:red")
ax1.set_title("Climate in one chart")
plt.show()
Run-Button für dieses Beispiel erstellen Das Diagramm, das dieser Code zeichnet
Zwei y-Achsen mit twinx