¿Cómo le digo a matplotlib que he terminado con un diagrama?
El siguiente código se traza en dos archivos PostScript (.ps), pero el segundo 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 decirle a matplotlib que comience de nuevo para el segundo gráfico?
Aceptado
Hay un comando de figura claro y debería hacerlo por usted:
plt.clf()
Si tienes varias subtramas en la misma figura
plt.cla()
borra los ejes actuales.
Puede utilizarlo figure
para crear un nuevo trazado, por ejemplo, o utilizarlo close
después del primer trazado.
Como lo indicó @DavidCournapeau, use figure()
.
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 subplot(121)
/ subplot(122)
para la misma trama, diferente posición.
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")
Simplemente ingrese plt.hold(False)
antes del primer plt.plot y podrá ceñirse a su código original.