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.close()将完全关闭图形窗口,其中plt.clf()将仅清除图形-您仍可以在其上绘制另一个绘图 听起来,出于您的需要,您应该更喜欢plt

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

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

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

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

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

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

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

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

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


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

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

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

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


我认为值得一提的是,
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()






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

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()