Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/365.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python plt.close()和plt.clf()之间的差异_Python_Matplotlib - Fatal编程技术网

Python plt.close()和plt.clf()之间的差异

Python plt.close()和plt.clf()之间的差异,python,matplotlib,Python,Matplotlib,在Python中,plt.clf()和plt.close()之间有什么区别 它们会以同样的方式运行吗 plt.close()将完全关闭图形窗口,其中plt.clf()将仅清除图形-您仍可以在其上绘制另一个绘图 听起来,出于您的需要,您应该更喜欢plt.clf(),或者更好地保留行对象本身的句柄(它们通过plot调用在列表中返回),并在后续迭代中使用 plt.clf()清除整个当前图形及其所有轴,但保持窗口打开,以便可以将其重新用于其他绘图 plt.close()关闭一个窗口,如果没有另外指定,该

在Python中,
plt.clf()
plt.close()
之间有什么区别

它们会以同样的方式运行吗

plt.close()
将完全关闭图形窗口,其中
plt.clf()
将仅清除图形-您仍可以在其上绘制另一个绘图

听起来,出于您的需要,您应该更喜欢
plt.clf()
,或者更好地保留行对象本身的句柄(它们通过
plot
调用在列表中返回),并在后续迭代中使用

plt.clf()
清除整个当前图形及其所有轴,但保持窗口打开,以便可以将其重新用于其他绘图


plt.close()
关闭一个窗口,如果没有另外指定,该窗口将是当前窗口。

我认为值得一提的是,
plt.close()
释放内存,因此在一次运行中生成和保存多个图形时,首选此窗口

在这种情况下使用
plt.clf()
将在20个绘图后产生警告(即使它们不会通过
plt.show()
显示):

已经打开了20多个数字。通过 pyplot接口(
matplotlib.pyplot.figure
)将保留到 显式关闭,可能会消耗太多内存


这两种功能之间有一点不同

plt.close()-它在单独的窗口中绘制图形,释放 内存,保留每个窗口以供查看

plt.clf()-我们可以说,它在相同的窗口中一个接一个地显示图形

为了便于说明,我绘制了两个图形,每个图形的X轴和Y轴上都有参数year和View。最初我使用了关闭函数。它在两个单独的窗口中显示图形

之后,当我使用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()