Me gustaría hacer gráficos en 4 ejes, los primeros tres trazados individuales en cada eje, y los últimos 3 trazados en los últimos ejes. Aquí está el código:¿Cómo reutilizo las parcelas en matplotlib?
from numpy import *
from matplotlib.pyplot import *
fig=figure()
data=arange(0,10,0.01)
ax1=fig.add_subplot(2,2,1)
ax2=fig.add_subplot(2,2,2)
ax3=fig.add_subplot(2,2,3)
ax4=fig.add_subplot(2,2,4)
line1=ax1.plot(data,data)
line2=ax2.plot(data, data**2/10, ls='--', color='green')
line3=ax3.plot(data, np.sin(data), color='red')
#could I somehow use previous plots, instead recreating them all?
line4=ax4.plot(data,data)
line4=ax4.plot(data, data**2/10, ls='--', color='green')
line4=ax4.plot(data, np.sin(data), color='red')
show()
La imagen resultante es:
¿Hay una manera de definir parcelas primero y luego añadirlos a los ejes, y luego trazar ellos? Esta es la lógica que tenía en mente:
#this is just an example, implementation can be different
line1=plot(data, data)
line2=plot(data, data**2/10, ls='--', color='green')
line3=plot(data, np.sin(data), color='red')
line4=[line1, line2, line3]
Ahora línea 1 parcela sobre la AX1, línea 2 en ax2, línea 3 en ax3 y line4 en AX4.
¿Pero qué pasa con llamar a la trama de nuevo? ¿Eso está causando algún problema? – wim
@wim no está causando ningún problema en este caso. Pero siempre soy escéptico sobre el código si necesito usar copy paste. O si quisiera, por ejemplo, enviar un trazo de líneas a alguna función que arregle las tramas de alguna manera en diferentes ejes. – enedene
En lugar de crear una figura y luego agregar subtramas, puede hacer esto en una línea: 'fix, ax = plt.subplots (2, 2)'. Entonces 'ax' es una matriz numpy de ejes para que pueda' ax [0, 1] .plot (datos, datos ** 2/10, ls = '-', color = 'g') ' – mmagnuski