matplotlib.pyplot no olvidará las plots anteriores. ¿Cómo puedo vaciar / actualizar?

¿Cómo se obtiene matplotlib.pyplot para “olvidar” las plots anteriores?

Estoy tratando de trazar varias veces usando matplotlib.pyplot

El código se ve así:

 def plottest(): import numpy as np import matplotlib.pyplot as plt a=np.random.rand(10,) b=np.random.rand(10,) c=np.random.rand(10,) plt.plot(a,label='a') plt.plot(b,label='b') plt.plot(c,label='c') plt.legend(loc='upper left') plt.ylabel('mag') plt.xlabel('element)') plt.show() e=np.random.rand(10,) f=np.random.rand(10,) g=np.random.rand(10,) plt.plot(e,label='e') plt.plot(f,label='f') plt.plot(g,label='g') plt.legend(loc='upper left') plt.ylabel('mag') plt.xlabel('element)') plt.show() 

Desafortunadamente, sigo obteniendo la misma ttwig (en realidad de otro código que ejecuté y completé hace un tiempo) sin importar lo que haga.

Código similar ha funcionado anteriormente para mí.

He mirado estas preguntas:

¿Cómo “limpiar la pizarra”?

Matplotlib pyplot show () no funciona una vez cerrado

(python) matplotlib pyplot show () .. bloqueando o no?

y trató de usar plt.show() , plt.clf() y plt.close en vano.

¿Algunas ideas?

Preferiría usar plt.clf() después de cada plt.show() para borrar la cifra actual en lugar de cerrarla y volver a plt.show() , manteniendo el tamaño de la ventana y brindándole un mejor rendimiento y un mejor uso de memoria.

De manera similar, puede hacer plt.cla() para borrar los ejes actuales .

Para borrar un eje específico, útil cuando tiene varios ejes dentro de una figura, podría hacer por ejemplo:

 fig, axes = plt.subplots(nrows=2, ncols=2) axes[0, 1].clear() 

Descubrí que este comportamiento solo ocurre después de ejecutar un script en particular, similar al de la pregunta. No tengo idea de por qué ocurre.

Funciona (refresca los gráficos) si lo puse

 plt.clf() plt.cla() plt.close() 

después de cada plt.show()