Was ist in Python der Unterschied zwischen plt.clf()
und plt.close()
?
Werden sie auf die gleiche Weise funktionieren?
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.
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.
Tags und Links python matplotlib