gpt4 book ai didi

python - matplotlib:绘图完成后释放内存

转载 作者:行者123 更新时间:2023-11-28 17:43:20 25 4
gpt4 key购买 nike

我想知道在绘图完成后释放内存的正确方法,因为在循环中绘制多个图像时出现 RuntimeError: Could not allocate memory for image 错误。

目前我在另一个代码中有以下命令可以做到这一点:

import matplotlib.pyplot as plt

# The code
.....

# Make plot
fig = plt.figure()
# Plotting stuff.
plt.imshow(...)
plt.plot(...)
plt.scatter(...)

# Save plot to file.
plt.savefig(...)

# Release memory.
plt.clf()
plt.close()

this answer 中的评论声明正确的语法实际上是 plt.close(fig) 但投票最高的答案是 given hereplt.clf() 就足够了,没有提到 .close

问题是:绘图保存到文件后释放内存的正确命令是什么?我需要同时使用 .clf.close 还是其中一个就足够了?

最佳答案

我想为您推荐另一种方法。请注意,imshow 会为您返回句柄。获取对此的引用,并在该对象上使用 set_data 方法进行后续迭代。

>>> h = plt.imshow(np.zeros([480, 640]))
>>> h
<matplotlib.image.AxesImage at 0x47a03d0>
>>> for img in my_imgs:
... h.set_data(img) #etc

关于python - matplotlib:绘图完成后释放内存,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21529719/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com