Я черчение и спасти тысячи файлов для последующего анимации в цикле, как так:Matplotlib сбоя после сохранения многих участков
import matplotlib.pyplot as plt
for result in results:
plt.figure()
plt.plot(result) # this changes
plt.xlabel('xlabel') # this doesn't change
plt.ylabel('ylabel') # this doesn't change
plt.title('title') # this changes
plt.ylim([0,1]) # this doesn't change
plt.grid(True) # this doesn't change
plt.savefig(location, bbox_inches=0) # this changes
Когда я запускаю это с большим количеством результатов, он выходит из строя после того, как несколько тысяч участков сохранены. Я думаю, что я хочу, чтобы повторное использование моих осей, как в этом ответе: https://stackoverflow.com/a/11688881/354979, но я не понимаю, как это сделать. Как я могу его оптимизировать?
я столкнулся с подобной проблемой, как это несколько недель назад. Я решил проблему, создав сюжеты в подгруппах, сохранив их на диске, очистив их из своей памяти, а затем перейдя к сюжету остальных. Я думаю, что это из-за неэффективности в том, как matplotlib держит замыслы в памяти при работе с большими или многими сюжетами. К сожалению, одна из предпосылок библиотеки заключается в том, что используемые данные должны быть * относительно небольшими. Мой заговор работал отлично, пока я мог держать графики в памяти, а не поменяться на диск. – agconti
добавьте 'plt.close ('all')' в конце вашего цикла. Это не сделает его быстрее, но это не позволит вам избавиться от нехватки памяти. – tacaswell
@tcaswell спасибо за подсказку! Я не знал о методе 'plt.close ('all')'. – agconti