我正在使用迭代循环使用 Matplotlib 绘制 soame 数据。当代码保存了大约 768 个图时,它会引发以下异常。
RuntimeError: Could not allocate memory for image
我的电脑有大约 3.5 GB 的 RAM。有什么方法可以并行释放内存,以免内存耗尽?
我正在使用迭代循环使用 Matplotlib 绘制 soame 数据。当代码保存了大约 768 个图时,它会引发以下异常。
RuntimeError: Could not allocate memory for image
我的电脑有大约 3.5 GB 的 RAM。有什么方法可以并行释放内存,以免内存耗尽?
close
当你完成它们时,你还记得你的数字吗?例如:
import matplotlib.pyplot as plt
#generate figure here
#...
plt.close(fig) #release resources associated with fig
作为一个略有不同的答案,请记住您可以重复使用数字。就像是:
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 多次。