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 ( AxesImage, FigureImage, BboxImage)

0

Patch,PatchCollection

1

Line2D, LineCollection(y compris les graduations mineures, les lignes de grille)

2

Tiques majeures

2.01

Text(y compris les étiquettes et les titres des axes)

3

Legend

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.

import matplotlib.pyplot as plt
import numpy as np

r = np.linspace(0.3, 1, 30)
theta = np.linspace(0, 4*np.pi, 30)
x = r * np.sin(theta)
y = r * np.cos(theta)

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()
Lignes au-dessus des points, Points au-dessus des lignes

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()
Ordre personnalisé des éléments

Galerie générée par Sphinx-Gallery