Unterschied zwischen plt.close () und plt.clf ()

8

Was ist in Python der Unterschied zwischen plt.clf() und plt.close() ?

Werden sie auf die gleiche Weise funktionieren?

    
Joseph Clifford 21.05.2013, 03:47
quelle

3 Antworten

15

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

Es klingt, dass Sie für Ihre Bedürfnisse plt.clf() bevorzugen sollten, oder besser, behalten Sie die Zeilenobjekte selbst im Griff (sie werden in Listen von plot -Aufrufen zurückgegeben) und verwenden .set_data auf denen in nachfolgende Iterationen.

    
wim 21.05.2013, 03:50
quelle
2

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

Wenn plt.clf() in einem solchen Fall verwendet wird, wird nach 20 Plots eine Warnung ausgegeben (auch wenn sie nicht von plt.show() angezeigt werden):

  

Mehr als 20 Figuren wurden eröffnet. Figuren erstellt durch die   pyplot interface ( matplotlib.pyplot.figure ) bleiben bis   explizit geschlossen und möglicherweise zu viel Speicher verbrauchen.

    
murnko 26.10.2017 14:45
quelle
1

plt.clf() löscht die gesamte aktuelle Zahl 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, falls nicht anders angegeben.

    
Biplob45 07.07.2017 17:09
quelle

Tags und Links