2013-05-21 9 views

risposta

15

plt.close() chiuderà completamente la finestra della figura, dove plt.clf() cancellerà solo la figura - è ancora possibile disegnare un altro grafico su di essa.

Suona come, per le vostre esigenze, si dovrebbe essere preferendo plt.clf(), o meglio ancora mantenere una maniglia sulla linea stessi oggetti (sono restituiti in liste da plot chiamate) e utilizzare .set_data su quelli in iterazioni successive.

1

plt.clf() cancella l'intera figura corrente con tutti gli assi, ma lascia aperta la finestra, in modo che possa essere riutilizzata per altri grafici.

plt.close() chiude una finestra, che sarà la finestra corrente, se non diversamente specificato.

2

Penso che valga la pena ricordare che plt.close() rilascia la memoria, quindi è preferibile quando si generano e si salvano molte figure in una sola esecuzione.

Utilizzando plt.clf() in tal caso produrrà un avviso dopo 20 trame (anche se non stanno per essere mostrato da plt.show()):

Più di 20 figure sono stati aperti. I dati creati tramite l'interfaccia di pyplot (matplotlib.pyplot.figure) vengono conservati fino a quando vengono chiusi esplicitamente e possono consumare troppa memoria.