我想在matplotlib中绘制一系列.png图像。目标是快速绘制它们以模拟电影效果,但我有其他原因希望避免实际创建.avi文件或保存matplotlib图形,然后在Python之外按顺序查看它们。
我特别想在Python的for循环中按顺序查看图像文件。假设我已经正确导入了matplotlib,并且我有自己的函数'new_image()'和'new_rect()',下面是一些示例代码,由于show()函数调用GUI主循环的阻塞效应而无法正常工作:
上述代码能够显示第一张图片,但程序会卡住并等待我手动关闭结果窗口。一旦我关闭了它,程序就会卡住,不会重新绘制新的图像数据。我应该怎么做?还要注意的是,我已经尝试用plt.draw()命令替换plt.show()命令,然后在for循环外添加plt.show()命令,但这样不会显示任何内容,而且程序会卡住。
我特别想在Python的for循环中按顺序查看图像文件。假设我已经正确导入了matplotlib,并且我有自己的函数'new_image()'和'new_rect()',下面是一些示例代码,由于show()函数调用GUI主循环的阻塞效应而无法正常工作:
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.draw()命令替换plt.show()命令,然后在for循环外添加plt.show()命令,但这样不会显示任何内容,而且程序会卡住。