如果图像中的初始数组全部为零,则图像将是单色的,即使已更新。为了防止出现这种情况,您可以设置图像的标准化,然后在整个过程中使用。在这种情况下,最大值似乎是255,因此
ax.imshow(..., vmin=0, vmax=255)
在您的情况下,使用
FuncAnimation
:
import numpy as np
import matplotlib.pyplot as plt
from matplotlib.animation import FuncAnimation
from copy import deepcopy
img1 = np.zeros((400,400), dtype = np.uint8)
new_list = []
for i in range(100):
new_list.append(deepcopy(img1).astype(np.uint8))
new_list[-1][i:i+100,i:i+100] = 255
if i == 0:
new_list[-1][i:i+100,i:i+100] = 0
new_list[-1][i,i] = 1
fig,ax = plt.subplots(1,1)
image = ax.imshow(new_list[0],animated=True, vmin=0, vmax=255)
def animate(i):
image.set_data(new_list[i])
ani = FuncAnimation(fig, animate, frames=100, interval=10)
plt.show()