在Python中,plt.clf()
和plt.close()
之间有什么区别?
它们的功能是否相同?
答案 0 :(得分:27)
plt.close()
将完全关闭图形窗口,plt.clf()
将清除图形 - 您仍然可以在其上绘制另一个图形。
听起来,根据您的需要,您应该更喜欢plt.clf()
,或者更好地处理线对象本身(它们通过plot
调用在列表中返回)并使用{{ 1}}在后续迭代中的那些。
答案 1 :(得分:4)
我认为值得一提的是plt.close()
释放内存,因此在一次运行中生成和保存许多数字时是首选。
在这种情况下使用plt.clf()
会在20个绘图后产生警告(即使它们不会由plt.show()
显示):
已经开设了20多个数字。通过数字创建的数字 pyplot接口(
matplotlib.pyplot.figure
)保留到 明确关闭,可能会消耗太多内存。
答案 2 :(得分:2)
plt.clf()
用它的所有轴清除整个当前数字,但是打开窗口,这样它就可以重复用于其他图。
plt.close()
关闭一个窗口,如果没有另外指定,它将是当前窗口。
答案 3 :(得分:0)
两个功能之间有细微差别。
plt.close()-将图形绘制在单独的窗口中,释放 记忆,保留每个窗口以供查看。
plt.clf()-可以说,它在同一窗口中依次显示图形
为说明起见,我绘制了两个带有参数年份的图形,每个图形分别在X轴和Y轴上。最初我使用的是封闭函数。它在两个单独的窗口中显示图形……
后记,当我使用clf()运行程序时,它将清除图形并在同一窗口中显示下一个图形,即图1。 这是代码段-
import matplotlib.pyplot as plt
year = [2001,2002,2003,2004]
Views= [12000,14000,16000,18000]
Views2 = [15000,1800,24000,84000]
plt.plot(year,Views)
plt.show()
plt.clf()
plt.plot(year,Views2)
plt.show()
plt.clf()