Matplotlib für Fortgeschrittene

Achsengrenzen, Ticks und Log-Skala

Achsengrenzen setzen, Position und Text der Ticks wählen und mit set_yscale auf eine Log-Skala wechseln.

Einführung

Matplotlib wählt Achsengrenzen und Ticks für dich, aber oft weißt du es besser. set_xlim und set_ylim legen den sichtbaren Bereich fest, set_xticks bestimmt, wo die Ticks stehen und was sie anzeigen, und set_yscale("log") macht aus Wachstum, das sich verdoppelt, eine gerade Linie.

Die Nutzerzahl verdoppelt sich jede Woche, daher wirken die ersten Wochen auf einer normalen Achse flach und die letzten schießen nach oben. Auf einer Log-Skala braucht jede Verdopplung dieselbe Höhe, die Linie ist gerade und jede Woche lesbar. set_xticks(x, labels) setzt einen Tick pro Woche mit den Namen W1, W2 usw.; set_xlim lässt an beiden Enden etwas Platz.

Interaktive Visualisierung

Schalte die Log-Skala ein und aus. Auf einer normalen Achse verstecken sich die ersten Wochen nahe null; auf der Log-Skala braucht jede Verdopplung dieselbe Höhe.

Ausführbares Matplotlib-Beispiel

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

x = np.arange(1, 11)
users = 50 * 2.0 ** x

fig, ax = plt.subplots(figsize=(7, 4))
ax.plot(x, users, marker="o")
ax.set_yscale("log")
ax.set_xlim(0.5, 10.5)
ax.set_xticks(x, [f"W{i}" for i in x])
ax.set_xlabel("Week")
ax.set_ylabel("Users (log scale)")
ax.set_title("Users double every week")
plt.show()
Run-Button für dieses Beispiel erstellen Das Diagramm, das dieser Code zeichnet
Achsengrenzen, Ticks und Log-Skala