python清掉内存的函数_关于python:如何彻底清除所有Matplotlib图的内存

我有一个数据分析模块,该模块包含多次调用Matplotlib pyplot API的函数,每次运行最多生成30个图形。 这些数字生成后立即被写入磁盘,因此我需要从内存中清除它们。 目前,在每个功能结束时,

import matplotlib.pyplot as plt

plt.clf()

但是我不太确定该语句是否可以清除内存。 我特别担心,因为我发现每次运行模块进行调试时,我的可用内存空间都会不断减少。 每次将图写入磁盘后,任何人都可以启发我进行真正清除内存的操作吗?

谢谢。

您是否尝试过plt.close("all")? 我有一个脚本,该脚本创建了约60个图表,每个图表有3个轴。 我在每次迭代结束时使用它。 内存消耗似乎很正常。

感谢您的回答! 有效! 而且我还发现了这个很棒的stackoverflow帖子stackoverflow.com/questions/8213522/可以回答我的问题!

帖子stackoverflow.com/questions/8213522/不包括plt.close(" all")。 我尝试使用该文章中所有建议的选项,但是只有plt.close(" all")解决了我自己的问题。

何时使用cla(),clf()或close()在matplotlib中清除图的可能重复项?

尤其是当您运行多个进程或线程时,最好定义图形变量并直接使用它:

from matplotlib import pyplot as plt

f = plt.figure()

f.clear()

plt.close(f)

无论如何,您必须结合使用plt.clear()和plt.close()

I have data analysis module that contains functions which call on Matplotlib pyplot API multiple

您可以编辑调用matplotlib的函数吗? 我遇到了同样的问题,我尝试遵循以下命令,但没有一个起作用。

plt.close(fig)

fig.clf()

gc.collect()

%reset_selective -f fig

然后有一个技巧对我有用,而不是每次都创建一个新图形,而是将相同的fig对象传递给函数,这解决了我的问题。

例如使用

fig = plt.figure()

for i in range(100):

plt.plot(x,y)

代替,

for i in range(100):

fig = plt.figure()

plt.plot(x,y)

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值