¿Cómo le digo matplotlib que he terminado con una parcela?
-
09-09-2019 - |
Pregunta
Los siguientes gráficos de código en dos archivos PostScript (.ps), pero la segunda contiene ambas líneas.
import matplotlib
import matplotlib.pyplot as plt
import matplotlib.mlab as mlab
plt.subplot(111)
x = [1,10]
y = [30, 1000]
plt.loglog(x, y, basex=10, basey=10, ls="-")
plt.savefig("first.ps")
plt.subplot(111)
x = [10,100]
y = [10, 10000]
plt.loglog(x, y, basex=10, basey=10, ls="-")
plt.savefig("second.ps")
¿Cómo puedo saber matplotlib a empezar de nuevo para la segunda trama?
Solución
Puede utilizar figure
para crear una nueva trama, por ejemplo, o utilizar close
después de la primera trama.
Otros consejos
Hay una orden clara figura, y debe hacerlo por usted:
plt.clf()
Si tiene varias tramas secundarias en la misma figura
plt.cla()
borra los ejes actuales.
Como se ha dicho de David Cournapeau, el uso de la figura ().
import matplotlib
import matplotlib.pyplot as plt
import matplotlib.mlab as mlab
plt.figure()
x = [1,10]
y = [30, 1000]
plt.loglog(x, y, basex=10, basey=10, ls="-")
plt.savefig("first.ps")
plt.figure()
x = [10,100]
y = [10, 10000]
plt.loglog(x, y, basex=10, basey=10, ls="-")
plt.savefig("second.ps")
O subtrama (121) / subtrama (122) para la misma parcela, posición diferente.
import matplotlib
import matplotlib.pyplot as plt
import matplotlib.mlab as mlab
plt.subplot(121)
x = [1,10]
y = [30, 1000]
plt.loglog(x, y, basex=10, basey=10, ls="-")
plt.subplot(122)
x = [10,100]
y = [10, 10000]
plt.loglog(x, y, basex=10, basey=10, ls="-")
plt.savefig("second.ps")
Solo tienes que introducir plt.hold(False)
antes de la primera plt.plot, y se puede cumplir con su código original.
Si está utilizando Matplotlib forma interactiva, por ejemplo, en una aplicación web, (por ejemplo ipython) que tal vez buscando
plt.show()
en lugar de plt.close()
o plt.clf()
.
Si ninguno de ellos está trabajando a continuación, comprobar esto .. digamos si tiene X e Y matrices de datos a lo largo del eje respectivo. A continuación, comprobar en qué célula (jupyter) que ha inicializado x e y para vaciar. Esto se debe a que, tal vez usted se añaden datos a los X e Y sin volver a inicializar ellos. Así parcela tiene datos antiguos también. A fin de comprobar que ..