python清掉内存的函数_关于python:如何彻底清除所有Matplotlib图的内存
我有一个数据分析模块,该模块包含多次调用Matplotlib pyplot API的函数,每次运行最多生成30个图形。 这些数字生成后立即被写入磁盘,因此我需要从内存中清除它们。 目前,在每个功能结束时,import matplotlib.pyplot as pltplt.clf()但是我不太确定该语句是否可以清除内存。 我特别担心,因为我发现每次运行模块进行调试时,我的可用内存空间都会不断减少。
我有一个数据分析模块,该模块包含多次调用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)