python - real - Matplotlib: Diagrama de dispersión en primer plano en la parte superior de un diagrama de contorno
matplotlib python (1)
Puede elegir manualmente en qué orden se mostrarán los diferentes gráficos con el parámetro zorder
de, por ejemplo, el método de scatter
.
Para demostrarlo, consulte el siguiente código, donde el diagrama de dispersión en la subparcela izquierda tiene zorder=1
y en la subparcela derecha tiene zorder=-1
. El objeto con el zorder
más zorder
se coloca en la parte superior. Esto significa que la dispersión se colocará en la parte superior del contorno en la primera subparcela, mientras que se coloca debajo de la segunda subparcela.
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))
¿Alguien sabe una forma de llevar un diagrama de dispersión al primer plano en matplotlib? Tengo que mostrar el trazado de dispersión en la parte superior del contorno, pero por defecto está trazado debajo ...
¡Gracias por adelantado!