2013-05-21 9 views

Antwort

15

plt.close() schließt das Zahlenfenster vollständig, wobei plt.clf() nur die Zahl löscht - Sie können noch eine weitere Grafik darauf malen.

Es klingt wie, für Ihre Bedürfnisse, sollten Sie plt.clf(), oder besser noch halten einen Griff auf der Linie Objekte selbst werden bevorzugen (sie in Listen von plot Anrufe zurückgegeben werden) und .set_data auf diejenigen, die in nachfolgenden Iterationen verwenden.

1

plt.clf() löscht die gesamte aktuelle Figur mit allen Achsen, lässt aber das Fenster geöffnet, so dass es für andere Plots wiederverwendet werden kann.

plt.close() schließt ein Fenster, das das aktuelle Fenster ist, wenn nicht anders angegeben.

2

Ich denke, es ist erwähnenswert, dass plt.close() den Speicher freigibt, daher wird bevorzugt, wenn viele Figuren in einem Lauf generiert und gespeichert werden.

Mit plt.clf() in einem solchen Fall eine Warnung nach 20 Plots erzeugen (auch wenn sie nicht durch plt.show() gezeigt werden werden):

Mehr als 20 Figuren geöffnet worden. Abbildungen, die über die pyplot-Schnittstelle() erstellt wurden, werden beibehalten, bis explizit geschlossen wird und möglicherweise zu viel Speicher belegt.