Zorder Demo #

L'ordine di disegno degli artisti è determinato dal loro zorderattributo, che è un numero in virgola mobile. Gli artisti con più alto zordersono disegnati in cima. Puoi modificare l'ordine dei singoli artisti impostando i loro file zorder. Il valore predefinito dipende dal tipo di Artista:

Artista

Ordine Z

Immagini ( AxesImage, FigureImage, BboxImage)

0

Patch,PatchCollection

1

Line2D, LineCollection(compresi segni di spunta minori, linee della griglia)

2

Zecche principali

2.01

Text(incluse etichette e titoli degli assi)

3

Legend

5

Qualsiasi chiamata a un metodo di tracciamento può impostare esplicitamente un valore per lo zorder di quel particolare elemento.

Nota

set_axisbelowe rcParams["axes.axisbelow"](predefinito: 'line') sono utili aiutanti per impostare l'ordine z delle tacche e delle linee della griglia.

Il disegno viene eseguito per Axesvolta. Se hai Assi sovrapposti, tutti gli elementi del secondo Asse vengono disegnati sopra il primo Asse, indipendentemente dal loro relativo zorder.

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'esempio seguente contiene un Line2Dcreato da plot() e i punti (a PatchCollection) creati da scatter(). Quindi, per impostazione predefinita, i punti sono sotto la linea (prima sottotrama). Nella seconda sottotrama, zorderè impostato esplicitamente per spostare i punti in cima alla linea.

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()
Linee sopra punti, punti sopra linee

Molte funzioni che creano un oggetto visibile accettano un zorderparametro. In alternativa, puoi richiamare set_zorder()l'oggetto creato in un secondo momento.

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()
Ordine personalizzato degli elementi

Galleria generata da Sphinx-Gallery