【发布时间】:2021-07-18 09:00:58
【问题描述】:
这是我用来绘制许多图并保存它们的代码,但它占用了所有可用 RAM 并导致笔记本崩溃。我尝试添加fig.clf()、del fig、gc.collect,但似乎没有任何效果。
我只能保存 38 个数字,然后会话在 Google Colab 上崩溃,因为 RAM 已满。
import numpy as np
import matplotlib as mpl
import matplotlib.pyplot as plt
print(np.__version__) # 1.19.5
print(mpl.__version__) # 3.2.2, also tried with latest 3.4.1
x = np.arange(0, 280, 0.1)
y = np.sin(x)
for k in range(100):
fig, ax = plt.subplots(6, 2, sharex = True)
fig.set_size_inches(37.33, 21)
for i in range(2):
for j in range(6):
ax[j][i].plot(x, y)
fig.savefig(f'figure{k}.png', dpi = 300)
plt.close(fig)
【问题讨论】:
-
我们无法通过查看伪代码来解决性能问题。提供 MCVE。 stackoverflow.com/help/minimal-reproducible-example
-
完成,添加了一个 MCVE。
-
您真的要创建 100 个单独的图像,每个图像包含 12 个图吗?我花了大约 7 秒才生成第一张图像(在 Jupyter 之外完成)。还请在您的示例中添加必要的导入,以及您正在使用的库的版本号。
-
是的,实际上我想创建 200 个单独的图像,每个图像有 12 个图,每个图包含 2.8k 行数据。但它只能创建 38 个。添加了必要的导入和库的版本号。感谢您的调查。
标签: python-3.x matplotlib jupyter-notebook google-colaboratory