Как «почистить сланец»?

Я хочу сделать серию графиков и сохранить каждый в файл. Но я не знаю, как стереть предыдущие сюжеты. Возможно, мне нужно каждый раз создавать новый объект, но я не знаю, какой это будет объект. Вот мой код, обратите внимание на комментарий. Это мой код:

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

Ответы на вопрос(1)

Решение Вопроса

DO NOT создавать новую фигуру каждый раз сplt.figure()вы быстро исчерпаете память. Вместо этого используйте (для фигуры и осей соответственно):

Вы можете запуститьplt.close() чтобы освободить распределение, однако было некоторое обсуждение, что этот метод привел к утечкам памяти в прошлом. Быстрый тест показывает, что в версии1.1.1rc это работает без проблем, поэтому не стесняйтесь использовать его в качестве альтернативы. Полезныйсвязанный вопрос обсуждает различия между методами.

 30 мая 2012 г., 17:37
Почему вы говорите, что повторное использование plt.figure приведет к проблемам с памятью? Если вы запустите plt.close (), это не освободит память?
 30 мая 2012 г., 17:45
@FakeDIY Да, звонитplt.close() освободит выделенную память. Я отредактирую вопрос, чтобы отразить это, спасибо!

Ваш ответ на вопрос