我正在绘制来自两个不同文件夹的图像对,对于每对图像,我使用plt.imshow()
一个接一个地绘制它们,并在每次循环后保存无花果。
为了加快速度,我想使用选项.set_data
,以便仅更新图形而不重绘所有内容。由于我必须执行两次,因此似乎只使用了最后一个,而第一次调用未进行任何更新。我正在做这样的事情:
data=np.arange(9).reshape(3,3)*10
im1=plt.imshow([data]*4) # simulating an rgb image that i read from file
mask=np.ma.array(np.arange(9).reshape(3,3)*10, mask=np.eye(3)) # 1D map
im2=plt.imshow(mask, vmin=2, vmax=7)
for i in range(10):
data=np.arange(9).reshape(3,3)*10 + np.random.randint(0,100,size=(3,3))
im1.set_data([data]*4) # simulating another rgb image read from file
mask=np.ma.array(np.arange(9).reshape(3,3)*10+np.random.randint(0,100,size=(3,3)), mask=np.eye(3)) # 1D map
im2.set_data(mask)
plt.savefig("{}.png".format(i))
使用此代码,仅更新遮罩,而不更新背景图像。有没有办法让matplotlib同时使用数据的两个更新?