Matplotlib提供了以下函数:
cla() # Clear axis
clf() # Clear figure
close() # Close a figure window
文档并没有对这些函数之间的区别提供太多的见解。我应该在什么时候使用每个函数,它到底是做什么的?
发布于 2011-11-22 22:54:34
它们都做了不同的事情,因为matplotlib使用了一个层次顺序,其中一个图形窗口包含一个可能由许多轴组成的图形。此外,还有来自pyplot接口的函数和Figure
类上的方法。我将在下面讨论这两种情况。
pyplot接口
pyplot
是一个模块,它收集了几个函数,允许以函数方式使用matplotlib。在这里,我假设已经将pyplot
导入为import matplotlib.pyplot as plt
。在这种情况下,有三个不同的命令可以删除东西:
请参阅matplotlib.pyplot
函数:
plt.cla()
clears an axes,即当前图形中的当前活动轴。它使其他轴保持不变。
plt.clf()
clears the entire current figure及其所有轴,但使窗口保持打开状态,以便它可以重复用于其他绘图。
plt.close()
closes a window,如果未另行指定,则为当前窗口。
因此,哪个函数最适合您取决于您的用例。
close()
函数还允许用户指定应该关闭哪个窗口。参数可以是使用figure(number_or_name)
创建窗口时为其指定的数字或名称,也可以是使用fig = figure()
获取的图形实例fig
。如果没有为close()
提供参数,则关闭当前活动的窗口。此外,还有语法close('all')
,它关闭所有图形。
Figure类的方法
此外,Figure
类还提供了清除地物的方法。我将在下面假设fig
是Figure
的一个实例
fig.clf()
clears the entire figure。仅当fig
是当前图形时,此调用才等同于plt.clf()
。
fig.clear()
是fig.clf()
的同义词
请注意,即使是del fig
也不会关闭关联的图形窗口。据我所知,关闭图形窗口的唯一方法是如上所述使用plt.close(fig)
。
https://stackoverflow.com/questions/8213522
复制相似问题