我正在处理和可视化大量数据;我的电脑内存总是不足。我为每个数据集绘制了数百/数千个图,并且我假设 python 内存不足,因为它使所有图都保持打开状态。即使代码运行完毕后,我也必须关闭 anaconda 以清除缓存/内存。这主要是因为我不知道还能怎么做。我该如何解决这个问题?
我尝试使用
.close()
和 .clf()
命令希望它能够关闭图形并释放 RAM,但这些都不起作用。这是我的代码片段:
def figure(y, y_label, title, filename):
plt.figure(figsize = (16, 8))
plt.plot(time, y)
plt.xlabel("Time (seconds)", fontsize = 22)
plt.ylabel(y_label, fontsize = 22)
plt.title(title)
plot_filename = filename
plot_filepath = os.path.join(data_directory, plot_filename)
plt.savefig(plot_filepath)
plt.clf()
plt.close()
欢迎来到Python内存管理痛苦的世界,这个痛苦似乎一年比一年严重。无论如何,这是我的 FUD。我有同样的情况,我发现有效的是将
plt.close
的每个实例替换为以下
import gc
plt.close()
fig = plt.gcf()
del fig
gc.collect()
尝试一下,看看你的记忆力是否更好。我对此的注释也交叉引用了https://github.com/matplotlib/matplotlib/issues/25406
的讨论