在循环中保存Matplotlib图时内存溢出

时间:2013-05-03 13:54:38

标签: python memory-management matplotlib

我使用迭代循环使用Matplotlib绘制soame数据。当代码保存了大约768个图时,它会抛出以下异常。

RuntimeError: Could not allocate memory for image

我的电脑有大约3.5 GB的RAM。 是否有任何方法可以并行释放内存,以免内存耗尽?

2 个答案:

答案 0 :(得分:8)

当你完成这些数字时,你还记得close你的数字吗? e.g:

import matplotlib.pyplot as plt

#generate figure here
#...
plt.close(fig)  #release resources associated with fig

答案 1 :(得分:4)

作为一个稍微不同的答案,请记住您可以重复使用数字。类似的东西:

fig = plt.figure()
ax = plt.gca()

im = ax.imshow(data_list[0],...)

for new_data in data_list:
    im.set_cdata(new_data)
    fig.savefig(..)

这将使您的代码运行得更快,因为它不需要设置并将数字拆掉700多倍。