Sie alle machen unterschiedliche Dinge, da matplotlib eine hierarchische Reihenfolge verwendet, in der ein Figurenfenster eine Figur enthält, die aus vielen Achsen bestehen kann. Darüber hinaus gibt es Funktionen von der Pyplot-Schnittstelle und Methoden für die Figure
Klasse. Ich werde beide Fälle unten diskutieren.
Pyplot-Schnittstelle
pyplot
ist ein Modul, das einige Funktionen sammelt, mit denen matplotlib auf funktionale Weise verwendet werden kann. Ich gehe hier davon aus, dass pyplot
als importiert wurde import matplotlib.pyplot as plt
. In diesem Fall gibt es drei verschiedene Befehle, mit denen Inhalte entfernt werden:
plt.cla()
löscht eine Achse , dh die aktuell aktiven Achsen in der aktuellen Abbildung. Die anderen Achsen bleiben unberührt.
plt.clf()
Löscht die gesamte aktuelle Figur mit all ihren Achsen, lässt jedoch das Fenster geöffnet, sodass es für andere Diagramme wiederverwendet werden kann.
plt.close()
schließt ein Fenster , das das aktuelle Fenster ist, sofern nicht anders angegeben.
Welche Funktionen am besten zu Ihnen passen, hängt also von Ihrem Anwendungsfall ab.
Mit der close()
Funktion kann außerdem festgelegt werden, welches Fenster geschlossen werden soll. Das Argument kann entweder eine Nummer oder ein Name sein, die einem Fenster beim Erstellen mit verwendet wurden, figure(number_or_name)
oder es kann eine Figureninstanz sein, die fig
erhalten wurde, dh mit fig = figure()
. Wenn kein Argument angegeben wird, close()
wird das aktuell aktive Fenster geschlossen. Darüber hinaus gibt es die Syntax close('all')
, die alle Zahlen schließt.
Methoden der Figure-Klasse
Darüber hinaus bietet die Figure
Klasse Methoden zum Löschen von Zahlen. Ich gehe im Folgenden davon aus, dass fig
es sich um eine Instanz von a handelt Figure
:
fig.clf()
löscht die gesamte Figur . Dieser Aufruf entspricht plt.clf()
nur dann, wenn fig
es sich um die aktuelle Zahl handelt.
fig.clear()
ist ein Synonym für fig.clf()
Beachten Sie, dass del fig
das zugehörige Figurenfenster nicht einmal geschlossen wird. Soweit ich weiß, kann ein Figurenfenster nur plt.close(fig)
wie oben beschrieben geschlossen werden.
close()
es sich um einen unspezifischen Befehl handelt, habe ich nach einer Möglichkeit gesucht, das Schließen von Figuren anzugeben (fig.close()
ist keine Funktion). Die korrekte Syntax lautet :plt.close(fig)
.clear()
, ich habe keinen großen Unterschied gesehen,cla()
nur dass nur in Parasitenäxtencla()
speziell behandelt wird.clear()
Funktion in meinemmatplotlib.pyplot
(Version 1.4.2 unter MacOS). Könnten Sie mich auf die zugehörige Dokumentation verweisen?clear()
Methode. DasFigure.clear
Äquivalent zuclf
undAxes.clear
ist äquivalent zucla
.Es gibt nur eine Einschränkung, die ich heute entdeckt habe. Wenn Sie eine Funktion haben, die häufig einen Plot aufruft, verwenden Sie diese besser,
plt.close(fig)
anstattfig.clf()
dass sich die erste nicht im Speicher ansammelt. Kurz gesagt, wenn der Speicher ein Problem darstellt, verwenden Sie plt.close (Abb.) (Obwohl es anscheinend bessere Möglichkeiten gibt, finden Sie am Ende dieses Kommentars relevante Links).Das folgende Skript erzeugt also eine leere Liste:
In diesem Fall wird eine Liste mit fünf Ziffern erstellt.
Aus der obigen Dokumentation ist mir nicht klar, was der Unterschied zwischen dem Schließen einer Figur und dem Schließen eines Fensters ist. Vielleicht wird das klarstellen.
Wenn Sie dort ein vollständiges Skript ausprobieren möchten, haben Sie:
Wenn der Speicher ein Problem darstellt, hat bereits jemand eine Problemumgehung in SO veröffentlicht. Siehe: Erstellen Sie eine Zahl, die als Referenz gezählt wird
quelle
pyplot
API gesammelt wird .plt.cla () bedeutet freie Stromachse
plt.clf () bedeutet eindeutige aktuelle Zahl
Außerdem gibt es plt.gca () (aktuelle Achse abrufen ) und plt.gcf () (aktuelle Abbildung abrufen ).
Lesen Sie hier mehr: Matplotlib, Pyplot, Pylab usw .: Was ist der Unterschied zwischen diesen und wann sie jeweils verwendet werden?
quelle