3

一連のプロットを作成し、それぞれをファイルに保存したいと考えています。しかし、以前のプロットを一掃する方法がわかりません。毎回新しいオブジェクトを作成する必要があるかもしれませんが、それがどのオブジェクトになるかはわかりません。これが私のコードです。コメントに注意してください。これは私のコードです:

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])
4

1 に答える 1

5

で毎回新しいフィギュアを作成しないplt.figure()でください。メモリがすぐに不足してしまいます。代わりに(図と軸にそれぞれ)を使用します。

plt.clf()
plt.cla()

実行plt.close()して割り当てを解放することはできますが、この方法では過去にメモリリークが発生したという議論があります。簡単なテストでは、バージョンでは1.1.1rcこれが問題なく機能することが示されているため、代わりに自由に使用してください。有用な関連する質問は、方法間の違いを議論します。

于 2012-05-30T15:28:40.090 に答える