Introduction
Dans ce tutoriel, nous allons apprendre l'ordre de tracé des artistes dans Matplotlib et comment ajuster l'ordre en utilisant l'attribut zorder. Nous explorerons également la manière de changer l'ordre pour des artistes individuels et la valeur par défaut de zorder pour différents types d'artistes.
Conseils sur la machine virtuelle
Une fois le démarrage de la machine virtuelle terminé, cliquez dans le coin supérieur gauche pour basculer vers l'onglet Carnet de notes pour accéder au carnet Jupyter pour pratiquer.
Parfois, vous devrez peut-être attendre quelques secondes pour que le carnet Jupyter ait fini de charger. La validation des opérations ne peut pas être automatisée en raison des limitations du carnet Jupyter.
Si vous rencontrez des problèmes pendant l'apprentissage, n'hésitez pas à demander à Labby. Donnez votre feedback après la session, et nous résoudrons rapidement le problème pour vous.
Comprendre zorder
L'attribut zorder dans Matplotlib est un nombre à virgule flottante qui détermine l'ordre de tracé des artistes. Les artistes avec un zorder plus élevé sont tracés au-dessus de ceux avec un zorder plus bas. La valeur par défaut de zorder dépend du type d'artiste. Par exemple, les images ont une valeur par défaut de zorder de 0, tandis que les patches ont une valeur par défaut de zorder de 1.
Changer zorder
Pour changer l'ordre de tracé des artistes, nous pouvons définir explicitement leur attribut zorder en utilisant le paramètre zorder lors de la création de l'artiste. Par exemple, nous pouvons déplacer les points au-dessus des lignes dans un nuage de points en définissant le zorder des points sur une valeur supérieure au zorder de la ligne.
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)
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('Lignes au-dessus des points')
ax2.plot(x, y, 'C3', lw=3)
ax2.scatter(x, y, s=120, zorder=2.5) ## déplacer les points au-dessus de la ligne
ax2.set_title('Points au-dessus des lignes')
plt.tight_layout()
plt.show()
Définir zorder pour les graduations et les lignes de grille
Nous pouvons utiliser la méthode set_axisbelow() ou le paramètre axes.axisbelow pour définir le zorder des graduations et des lignes de grille.
ax = plt.axes()
ax.plot([1, 2, 3], [2, 4, 3])
ax.set_axisbelow(True)
ax.yaxis.grid(color='gray', linestyle='dashed')
Ordre personnalisé d'éléments
Nous pouvons également définir le zorder des éléments dans un ordre personnalisé. Par exemple, nous pouvons définir le zorder d'une légende pour qu'elle soit située entre deux lignes.
import matplotlib.pyplot as plt
import numpy as np
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) ## en bas
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('Ordre personnalisé d\'éléments')
l = plt.legend(loc='upper right')
l.set_zorder(2.5) ## légende entre la ligne bleue et l'orange
plt.show()
Sommaire
Dans ce tutoriel, nous avons appris à propos de l'attribut zorder dans Matplotlib et à changer l'ordre de tracé des artistes. Nous avons également exploré la façon de définir le zorder pour les graduations et les lignes de grille et de créer un ordre personnalisé d'éléments. Comprendre zorder est essentiel lors de la création de visualisations complexes avec des éléments superposés.