Проблема цветовой карты с использованием анимации в matplotlib
Я использую matplotlib.animation
анимировать данные в трехмерном массиве с именем arr
, Я читаю данные из файла h5, используя h5py
библиотека и все ок. Но при использовании анимации цветовая карта застряла в первом кадре диапазона данных, и после некоторых шагов она отображает ненормализованные цвета при построении.
Вот мой код:
import numpy as np
import h5py
import matplotlib.pyplot as plt
import matplotlib.animation as animation
import matplotlib.cm as cm
f = h5py.File('ez.h5','r')
arr = f["ez"][:,:,:]
f.close()
fig = plt.figure()
i = 0
p = plt.imshow(arr[:,:,0], interpolation='bilinear', cmap=cm.RdYlGn)
def updatefig(*args):
global i
i += 1
if (i==333):
i = 0
p.set_array(arr[:,:,i])
plt.clim()
return p,
ani = animation.FuncAnimation(fig, updatefig, interval=50, blit=True)
plt.show()
1 ответ
Решение
Я думаю, что вы хотите заменить set_clim()
с
p.autoscale()
Без аргументов, set_clim()
это неоперация.
Тем не менее, изменение вашей цветовой гаммы в середине анимации кажется очень обманчивым.
Вы также должны использовать set_data
вместо set_array
(согласно документации).