Hinweis
Zum Ende springen, um den vollständigen Beispielcode herunterzuladen.
Zorder Demo#
Die Zeichenreihenfolge von Künstlern wird durch ihr zorder-Attribut bestimmt, das eine Fließkommazahl ist. Künstler mit höherem zorder werden oben gezeichnet. Sie können die Reihenfolge für einzelne Künstler ändern, indem Sie ihr zorder setzen. Der Standardwert hängt vom Typ des Künstlers ab
Artist |
Z-Reihenfolge |
|---|---|
Bilder ( |
0 |
1 |
|
|
2 |
Haupt-Ticks |
2.01 |
|
3 |
5 |
Jeder Aufruf einer Plotting-Methode kann explizit einen Wert für die Z-Reihenfolge dieses speziellen Elements festlegen.
Hinweis
set_axisbelow und rcParams["axes.axisbelow"] (Standard: 'line') sind praktische Hilfsmittel zum Einstellen der Z-Reihenfolge von Ticks und Gitterlinien.
Die Zeichnung erfolgt Achsenweise. Wenn Sie überlappende Achsen haben, werden alle Elemente der zweiten Achse über der ersten Achse gezeichnet, unabhängig von ihrer relativen Z-Reihenfolge.
Das folgende Beispiel enthält ein Line2D, das von plot() erstellt wurde, und die Punkte (ein PatchCollection), die von scatter() erstellt wurden. Daher sind die Punkte standardmäßig unter der Linie (erster Subplot). Im zweiten Subplot wird der zorder explizit gesetzt, um die Punkte über die Linie zu verschieben.
fig, (ax1, ax2) = plt.subplots(1, 2, figsize=(6, 3.2))
ax1.plot(x, y, 'C3', lw=3)
ax1.scatter(x, y, s=120)
ax1.set_title('Lines on top of dots')
ax2.plot(x, y, 'C3', lw=3)
ax2.scatter(x, y, s=120, zorder=2.5) # move dots on top of line
ax2.set_title('Dots on top of lines')
plt.tight_layout()

Viele Funktionen, die ein sichtbares Objekt erstellen, akzeptieren einen zorder-Parameter. Alternativ können Sie später set_zorder() auf dem erstellten Objekt aufrufen.
x = np.linspace(0, 7.5, 100)
plt.rcParams['lines.linewidth'] = 5
plt.figure()
plt.plot(x, np.sin(x), label='zorder=2', zorder=2) # bottom
plt.plot(x, np.sin(x+0.5), label='zorder=3', zorder=3)
plt.axhline(0, label='zorder=2.5', color='lightgrey', zorder=2.5)
plt.title('Custom order of elements')
l = plt.legend(loc='upper right')
l.set_zorder(2.5) # legend between blue and orange line
plt.show()

Gesamte Laufzeit des Skripts: (0 Minuten 1,185 Sekunden)