plt.close()和plt.clf()之间的区别

时间:2013-05-21 03:47:04

标签: python matplotlib

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

它们的功能是否相同?

4 个答案:

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

image 1 with close function


image 2 with close function


image 1 with clf function


image 2 with clf function