如何清除Python中Matplotlib的缓存

5
我需要创建很多图形,然后使用savefig保存图像。 但是在大约280张图片后,它会抛出异常RuntimeError: Could not allocate memory for image。是否有类似于Matplotlib中的clear()的函数?

重新分配任何引用您图片的变量,Python 应该会为您清除内存。 - grc
1
你是使用单个图形对象还是创建多个图形? - Thibaut
1
可能是Matplotlib在循环中绘制时耗尽内存的重复问题。 - sebix
2个回答

7

不要忘记 https://dev59.com/YnnZa4cB1Zd3GeqPv-m6 :看到它说:请记住,plt.show()是一个阻塞函数,所以在你上面使用的示例代码中,plt.close()直到窗口关闭才被执行,这使它变得多余。您可以在代码开头使用plt.ion()使其非阻塞,但这会产生其他影响。 - pippo1980

0

你可以尝试:

i=1
while i<=280:
    plt.figure(i).clear()
    i+=1

但是你必须给你的图形编号:

import matplotlib.pyplot as plt
from numpy import *

# example of data:
x = linspace(0,4,1e3)
data = sin(10*x)

plt.figure(1)
plt.plot(x, data)
plt.show()

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接