Matplotlib 如何";“收拾残局”吗;?

Matplotlib 如何";“收拾残局”吗;?,matplotlib,Matplotlib,我想制作一系列绘图,并将每个绘图保存到一个文件中。但我不知道如何消除以前的阴谋。也许每次我都需要创建一些新对象,但我不知道该创建哪个对象。这是我的代码,请注意注释。 这是我的代码: import matplotlib.pyplot as plt ind = (1,2,3,4) groups=( (1, (1.1,1.2,1.3,1.4)), (2, (2.2,2.2,1.2,2.4)), ) for group in reversed(groups): #clean the sla

我想制作一系列绘图,并将每个绘图保存到一个文件中。但我不知道如何消除以前的阴谋。也许每次我都需要创建一些新对象,但我不知道该创建哪个对象。这是我的代码,请注意注释。 这是我的代码:

import matplotlib.pyplot as plt
ind = (1,2,3,4)
groups=(
  (1, (1.1,1.2,1.3,1.4)),
  (2, (2.2,2.2,1.2,2.4)),
)

for group in reversed(groups):
  #clean the slate ?
  plt.bar(ind   ,group[1])
  plt.xticks([i+0.5 for i in ind],ind)
  plt.savefig('%d.png' % group[0])

不要每次使用
plt.figure()
创建一个新图形,否则会很快耗尽内存。改为使用(分别用于图形和轴):


您可以运行
plt.close()
来释放分配,但是有一些讨论认为这种方法在过去会导致内存泄漏。快速测试表明,在版本
1.1.1rc
中,这项功能不会出现问题,因此可以随意使用它作为替代方案。一个有用的讨论方法之间的差异。

为什么说重用plt.figure会导致内存问题?如果运行plt.close(),是否会释放内存?@FakeDIY Yes调用
plt.close()
将释放分配的内存。我将编辑问题以反映这一点,谢谢!
plt.clf()
plt.cla()