Noter
Cliquez ici pour télécharger l'exemple de code complet
Démo Zorder #
L'ordre de dessin des artistes est déterminé par leur zorderattribut, qui est un nombre à virgule flottante. Les artistes avec le plus haut zordersont dessinés en haut. Vous pouvez modifier l'ordre des artistes individuels en définissant leur fichier zorder. La valeur par défaut dépend du type de l'Artiste :
Artiste |
Ordre Z |
|---|---|
Images ( |
0 |
1 |
|
|
2 |
Tiques majeures |
2.01 |
|
3 |
5 |
Tout appel à une méthode de traçage peut définir explicitement une valeur pour l'ordre z de cet élément particulier.
Noter
set_axisbelowet rcParams["axes.axisbelow"](par défaut : 'line') sont des aides pratiques pour définir l'ordre des graduations et des lignes de grille.
Le dessin est fait par Axesà la fois. Si vous avez des Axes qui se chevauchent, tous les éléments des seconds Axes sont dessinés au-dessus des premiers Axes, quel que soit leur ordre relatif.
L'exemple suivant contient un Line2Dcréé par plot()
et les points (a PatchCollection) créé par scatter(). Par conséquent, par défaut, les points sont sous la ligne (première sous-parcelle). Dans la deuxième sous-parcelle, la zorderest définie explicitement pour déplacer les points en haut de la ligne.
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()

De nombreuses fonctions qui créent un objet visible acceptent un zorderparamètre. Alternativement, vous pouvez appeler set_zorder()l'objet créé ultérieurement.
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()