principlepythonCriticalCanonical
When to use cla(), clf() or close() for clearing a plot
Viewed 0 times
clacloseclearinguseplotforwhenclf
Problem
Matplotlib offers these functions:
When should I use each function and what exactly does it do?
cla() # Clear axis
clf() # Clear figure
close() # Close a figure window
When should I use each function and what exactly does it do?
Solution
They all do different things, since matplotlib uses a hierarchical order in which a figure window contains a figure which may consist of many axes. Additionally, there are functions from the pyplot interface and there are methods on the
pyplot interface
In this case, there are three different commands that remove stuff:
See
Which functions suits you best depends thus on your use-case.
The
methods of the Figure class
Additionally, the
I'll assume in the following that
Note that even
Figure class. I will discuss both cases below.pyplot interface
pyplot is a module that collects a couple of functions that allow matplotlib to be used in a functional manner. I here assume that pyplot has been imported as import matplotlib.pyplot as plt.In this case, there are three different commands that remove stuff:
See
matplotlib.pyplot Functions:plt.cla()clears an axis, i.e. the currently active axis in the current figure. It leaves the other axes untouched.
plt.clf()clears the entire current figure with all its axes, but leaves the window opened, such that it may be reused for other plots.
plt.close()closes a window, which will be the current window, if not specified otherwise.
Which functions suits you best depends thus on your use-case.
The
close() function furthermore allows one to specify which window should be closed. The argument can either be a number or name given to a window when it was created using figure(number_or_name) or it can be a figure instance fig obtained, i.e., usingfig = figure(). If no argument is given to close(), the currently active window will be closed. Furthermore, there is the syntax close('all'), which closes all figures.methods of the Figure class
Additionally, the
Figure class provides methods for clearing figures.I'll assume in the following that
fig is an instance of a Figure:fig.clear() clears the entire figure, and is in the primary list of functions to get and modify the figure state. This call is equivalent to plt.clf() only if fig is the current figure.fig.clf() is a synonym for fig.clear() but is discouraged.Note that even
del fig will not close the associated figure window. As far as I know the only way to close a figure window is using plt.close(fig) as described above.Context
Stack Overflow Q#8213522, score: 962
Revisions (0)
No revisions yet.