4

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

RuntimeError: Could not allocate memory for image

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

4

2 回答 2

8

close当你完成它们时,你还记得你的数字吗?例如:

import matplotlib.pyplot as plt

#generate figure here
#...
plt.close(fig)  #release resources associated with fig
于 2013-05-03T14:02:04.000 回答
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 多次。

于 2013-05-03T22:39:58.163 回答