¿Cómo le digo a matplotlib que he terminado con un diagrama?

Resuelto Stefano Borini asked hace 15 años • 8 respuestas

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?

Stefano Borini avatar Apr 12 '09 21:04 Stefano Borini
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.

randlet avatar Apr 12 '2009 17:04 randlet

Puede utilizarlo figurepara crear un nuevo trazado, por ejemplo, o utilizarlo closedespués del primer trazado.

David Cournapeau avatar Apr 12 '2009 14:04 David Cournapeau

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")
lmount avatar Apr 12 '2009 21:04 lmount

Simplemente ingrese plt.hold(False)antes del primer plt.plot y podrá ceñirse a su código original.

Dirklinux avatar Mar 22 '2012 10:03 Dirklinux