Простое решение
Очистить фигуру при каждом запуске l oop.
import numpy as np
import matplotlib.pyplot as plt
data = np.random.rand(100,100,10) * np.linspace(1,7,10)
fig = plt.figure()
for i in range(10):
plt.clf()
plt.imshow(np.squeeze(data[:, :, i]))
plt.colorbar()
plt.pause(2)
plt.show()
Эффективное решение
Используйте одно и то же изображение и просто обновите данные , Также используйте FuncAnimation
вместо al oop для запуска всего события GUI l oop.
import numpy as np
import matplotlib.pyplot as plt
from matplotlib.animation import FuncAnimation
data = np.random.rand(100,100,10) * np.linspace(1,7,10)
fig, ax = plt.subplots()
im = ax.imshow(np.squeeze(data[:, :, 0]))
cbar = fig.colorbar(im, ax=ax)
def update(i):
im.set_data(data[:, :, i])
im.autoscale()
ani = FuncAnimation(fig, update, frames=data.shape[2], interval=2000)
plt.show()