在matplotlib.pyplot中,plt.clf()和plt.close()有什么不同?它们会以同样的方式发挥作用吗?
我正在运行一个循环,在每次迭代结束时,我都会生成一个图形并保存该图。在最初的几次尝试中,情节在随后的每一次情节中都保留了旧的数字。我正在寻找每次迭代的单独图,没有旧的图形,我使用哪一个重要吗?我正在运行的计算需要很长的时间,而且测试它将非常耗时。
发布于 2013-05-21 11:50:01
plt.close()将完全关闭图形窗口,plt.clf()将只清除图形-您仍然可以在其上绘制另一个绘图。
听起来,为了满足您的需要,您应该首选plt.clf(),或者更好的做法是保持对line对象本身的句柄(它们由plot调用在列表中返回),并在后续迭代中对这些对象使用.set_data。
发布于 2017-10-26 22:45:56
我认为值得一提的是,plt.close()释放了内存,因此在一次运行中生成和保存多个图形时是首选的。
在这种情况下使用plt.clf()将在绘制20个图形后产生警告(即使它们不会在plt.show()中显示):
已经开放了20多个数字。通过pyplot接口(
matplotlib.pyplot.figure)创建的图形将一直保留到显式关闭,并且可能会消耗太多内存。
发布于 2017-07-08 01:09:10
plt.clf()将清除整个当前地物及其所有轴,但使窗口保持打开状态,以便它可以重复用于其他绘图。
如果未另外指定,plt.close()将关闭一个窗口,该窗口将是当前窗口。
https://stackoverflow.com/questions/16661790
复制相似问题