Я хочу построить последовательность изображений .png в matplotlib. Цель состоит в том, чтобы быстро отобразить их, чтобы имитировать эффект фильма, но у меня есть дополнительные причины, чтобы избежать фактического создания файла .avi или сохранения фигур matplotlib, а затем просмотра их последовательно за пределами Python.
Я специально пытаюсь просматривать файлы изображений последовательно внутри цикла for на Python. Предполагая, что я правильно импортировал matplotlib, и у меня есть свои собственные функции new_image() и new_rect(), здесь приведен пример кода примера, который не работает из-за блокирующего эффекта вызова функции show() в GUI mainloop:
for index in index_list:
img = new_image(index)
rect = new_rect(index)
plt.imshow(img)
plt.gca().add_patch(rect)
plt.show()
#I also tried pausing briefly and then closing, but this doesn't
#get executed due to the GUI mainloop from show()
time.sleep(0.25)
plt.close()
Вышеприведенный код работает, чтобы показать только первое изображение, но затем программа просто зависает и ждет, когда я вручную закрою окно результатов. Как только я завершу его, программа затем просто зависает и не переделывает с новыми данными изображения. Что мне делать? Также обратите внимание, что я попытался заменить команду plt.show() командой plt.draw(), а затем добавить plt.show() вне цикла for. Это ничего не отображает и просто зависает.