在Python中重用模块引用(Matplotlib)

时间:2010-03-01 15:08:39

标签: python matplotlib

我想我可能在这里误解了一些东西......但是这里有。

我在matplotlib中使用psd方法在循环中,我没有让它绘制任何东西,我只想要数值结果,所以:

import pylab as pyl
...
psdResults = pyl.psd(inputData, NFFT=512, Fs=sampleRate, window=blackman)

但每次我运行它所使用的功能时,它都会被循环36次。

当我运行程序时,我的内存泄漏很慢,因此使用'heapy'来监视它,每次运行该函数时,它会为这3个堆添加36个:

dict matplotlib.line.Line26
dict matplotlib.transforms.CompositeAffine2D
dict matplotlib.path.Path

我只能得出结论,每次我使用psd方法时,它只是将它添加到某个字典的某处,而我想有效地擦除内存 - 即每次循环重置pylab以便它不存储任何内容。

我可能误解了堆,但似乎很清楚pylab只是在增长每个循环,即使我只想使用它的psd方法,我不希望它将结果保存在任何地方!

干杯

1 个答案:

答案 0 :(得分:3)

试试这个:

from matplotlib import mlab
psdResults = mlab.psd(inputData, NFFT=512, Fs=sampleRate, window=blackman)

这会改善情况吗?