问题描述
它们都做不同的事情,因为 matplotlib 使用分层顺序,其中图形窗口包含可能由许多轴组成的图形。此外,还有来自 pyplot
接口的函数和figure
类中的方法。我将在下面讨论这两种情况。
pyplot 接口
pyplot
是一个模块,它收集了几个允许 matplotlib 以函数方式使用的函数。我在这里假设pyplot
已导入为import
matplotlib.pyplot as plt
. 在这种情况下,有三个不同的命令可以删除内容:
plt.cla()
清除轴,即当前图形中当前活动的轴。它使其他轴保持不变。
plt.clf()
清除整个当前图形及其所有轴,但使窗口保持打开状态,以便可以将其重新用于其他绘图。
plt.close()
关闭一个窗口,如果没有另外指定,它将是当前窗口。
因此,哪些功能最适合您取决于您的用例。
该close()
功能还允许指定应关闭哪个窗口。参数可以是在创建窗口时赋予窗口的数字或名称,figure(number_or_name)
也可以是fig
获得的图形实例,即使用fig
= figure()
. 如果没有给 参数close()
,当前活动的窗口将被关闭。此外,还有语法close('all')
,它关闭所有图形。
figure 类的方法
此外,figure
该类还提供了清除数字的方法。我将在下面假设这fig
是 a 的一个实例figure
:
fig.clf()
清除整个数字。此调用等效于plt.clf()
only
if fig
is the current figure。
请注意,甚至del fig
不会关闭关联的图形窗口。据我所知,关闭图形窗口的唯一方法是plt.close(fig)
如上所述使用。
解决方法
Matplotlib 提供以下功能:
cla() # Clear axis
clf() # Clear figure
close() # Close a figure window
该文档没有提供很多关于这些功能之间的区别的见解。我应该什么时候使用每个功能,它到底是做什么的?