我matplotlib.animation过去常常在名为的3D数组中制作数据动画arr。我使用h5py库从h5文件读取数据,一切正常。但是当使用动画时,颜色图卡在数据范围的第一帧中,经过一些步骤后,它在绘制时会显示未归一化的颜色。
matplotlib.animation
arr
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()
我想你要替换set_clim()为
set_clim()
p.autoscale()
没有参数,set_clim()是无操作。
就是说,在动画过程中更改颜色比例似乎很容易引起误解。
您还应该使用set_data代替set_array(根据文档)。
set_data
set_array