我使用迭代循环使用Matplotlib绘制soame数据。当代码保存了大约768个图时,它会抛出以下异常。
RuntimeError: Could not allocate memory for image
我的电脑有大约3.5 GB的RAM。 是否有任何方法可以并行释放内存,以免内存耗尽?
答案 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多倍。