我基于matplotlib
站点example编写了以下代码。在
import numpy as np
import matplotlib.pyplot as plt
import matplotlib.animation as animation
fig = plt.figure()
nFreqs = 1024
nFFTWindows = 512
viewport = np.ones((nFreqs, nFFTWindows))
im = plt.imshow(viewport, animated=True)
def updatefig(*args):
global viewport
print viewport
viewport = np.roll(viewport, -1, axis=1)
viewport[:, -1] = 0
im.set_array(viewport)
return im,
ani = animation.FuncAnimation(fig, updatefig, interval=50, blit=True)
plt.show()
在改变动画作品之前,但现在没有了。我希望它从紫色开始,从右边到左边慢慢变黄。viewport
变量没有正确更新(在我的函数中用print
检查它)。在
我得到了静态图像(所有图像,就像最初一样):
我哪里出错了?在
imshow
图是用一个值初始化的(在本例中是1),因此任何规格化为1到1之间的值都将变成相同的颜色。在为了改变这种情况,你可以
imshow
绘图(vmin=0, vmax=1
)。在用一个规范化实例初始化
imshow
图im.set_clim(0,1)
设置限制。在“首选项”>;“IPython控制台”>;“图形”>;“后端”,并将其从“内联”更改为“自动”
在应用上述更改后,不要忘记重新启动IDE(Spyder、PyCharm等)。在
干杯
:)
问题是,最初用单一颜色(1.0)定义绘图,因此颜色范围设置为该值。当你更新图形时,颜色范围是1.0+——一些小值,所以你看不到变化。您需要使用
vmin
/vmax
参数将颜色范围设置为1到0之间,如下所示:代码的其余部分保持不变,这应该可以按预期工作。另一种选择是增加通话
^{pr2}$在
im.set_array(viewpoint)
之后强制每次更新颜色范围。在相关问题 更多 >
编程相关推荐