Demonstração do Zorder #

A ordem de desenho dos artistas é determinada por seu zorderatributo, que é um número de ponto flutuante. Artistas com maior zordersão desenhados no topo. Você pode alterar a ordem de artistas individuais definindo seus arquivos zorder. O valor padrão depende do tipo do Artista:

Artista

ordem Z

Imagens ( AxesImage, FigureImage, BboxImage)

0

Patch,PatchCollection

1

Line2D, LineCollection(incluindo carrapatos menores, linhas de grade)

2

Tiques principais

2.01

Text(incluindo rótulos e títulos de eixos)

3

Legend

5

Qualquer chamada para um método de plotagem pode definir explicitamente um valor para o zorder desse item específico.

Observação

set_axisbelowe rcParams["axes.axisbelow"](padrão: 'line') são auxiliares convenientes para definir a ordem z de tiques e linhas de grade.

O desenho é feito por Axesvez. Se você tiver eixos sobrepostos, todos os elementos dos segundos eixos serão desenhados sobre os primeiros eixos, independentemente de sua ordem z relativa.

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)

O exemplo a seguir contém a Line2Dcreated by plot() e os pontos (a PatchCollection) created by scatter(). Portanto, por padrão, os pontos estão abaixo da linha (primeira subtrama). Na segunda subtrama, o zorderé definido explicitamente para mover os pontos no topo da linha.

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()
Linhas em cima de pontos, Pontos em cima de linhas

Muitas funções que criam um objeto visível aceitam um zorderparâmetro. Como alternativa, você pode chamar set_zorder()o objeto criado posteriormente.

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()
Ordem personalizada dos elementos

Galeria gerada por Sphinx-Gallery