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