È possibile scegliere manualmente in quale ordine i diversi grafici devono essere visualizzati con il parametro zorder
di ad es. il metodo scatter
.
Per dimostrare, vedere il codice di seguito, in cui il grafico a dispersione nella sottotramcia sinistra ha zorder=1
e nella sottotramcia destra ha zorder=-1
. L'oggetto con il massimo zorder
viene posizionato in alto. Ciò significa che la dispersione verrà posizionata nella parte superiore del contorno nella prima sottotrama, mentre verrà posizionata nella parte inferiore della seconda sottotrama.
import numpy as np
import matplotlib.cm as cm
import matplotlib.mlab as mlab
import matplotlib.pyplot as plt
delta = 0.025
x = np.arange(-3.0, 3.0, delta)
y = np.arange(-2.0, 2.0, delta)
X, Y = np.meshgrid(x, y)
Z1 = mlab.bivariate_normal(X, Y, 1.0, 1.0, 0.0, 0.0)
Z2 = mlab.bivariate_normal(X, Y, 1.5, 0.5, 1, 1)
Z = 10.0 * (Z2 - Z1)
norm = cm.colors.Normalize(vmax=abs(Z).max(), vmin=-abs(Z).max())
cmap = cm.PRGn
levels = np.arange(-2.0, 1.601, 0.4)
fig, axes = plt.subplots(1,2, sharey=True)
for ax, zord in zip(axes, [1, -1]):
ax.contourf(X, Y, Z, levels,
cmap=cm.get_cmap(cmap, len(levels)-1),
norm=norm)
ax.autoscale(False) # To avoid that the scatter changes limits
ax.scatter(np.random.uniform(-3,3,10),
np.random.uniform(-2,2,10),
zorder=zord)
ax.set_title('Scatter with zorder={0}'.format(zord))
Scopri i [ 'zorder'] (http://matplotlib.org/api/artist_api.html#matplotlib.artist.Artist.set_zorder) parametro del metodo' scatter'. [Esempio di utilizzo] (http://matplotlib.org/examples/pylab_examples/zorder_demo.html) dal sito matplotlib. – hooy
Questo ha funzionato, grazie! – Mike