(python)matplotlib动画不';不显示

(python)matplotlib动画不';不显示,python,animation,matplotlib,Python,Animation,Matplotlib,我基于matplotlib站点编写了以下代码 在更改动画之前,它可以工作,但现在不行。我希望它从一个紫色的图开始,从右到左慢慢变为黄色。viewport变量更新正确(在我的函数中使用print检查) 我得到了静态图像(所有的,就像最初一样): 我在这里哪里出错了?问题是您最初使用单一颜色(1.0)定义绘图,因此颜色范围设置为此。更新图形时,颜色范围为1.0+——一些较小的值,因此您看不到变化。您需要使用vmin/vmax参数将颜色范围设置为1到0之间,如下所示: im = plt.imshow

我基于
matplotlib
站点编写了以下代码

在更改动画之前,它可以工作,但现在不行。我希望它从一个紫色的图开始,从右到左慢慢变为黄色。
viewport
变量更新正确(在我的函数中使用
print
检查)

我得到了静态图像(所有的,就像最初一样):


我在这里哪里出错了?

问题是您最初使用单一颜色(1.0)定义绘图,因此颜色范围设置为此。更新图形时,颜色范围为1.0+——一些较小的值,因此您看不到变化。您需要使用
vmin
/
vmax
参数将颜色范围设置为1到0之间,如下所示:

im = plt.imshow(viewport, animated=True, vmin=0., vmax=1.)
代码的其余部分保持不变,这应该按预期工作。另一种选择是添加呼叫

im.autoscale()

im.设置数组(视点)
后,强制每次更新颜色范围。

使用一个单一值初始化
imshow
绘图(在本例中为1),因此标准化为1到1之间范围的任何值都变为相同颜色

为了改变这一点,您可以

  • 启动带有颜色限制的
    imshow
    绘图(
    vmin=0,vmax=1
  • 使用规范化实例启动
    imshow
    绘图

    norm = matplotlib.colors.Normalize(vmin=0, vmax=1)
    im = plt.imshow(arr, norm=norm)
    
  • 之后使用
    im.Set\u clim(0,1)
    设置限制

  • 首选项>IPython控制台>图形>后端,并将其从“内联”更改为“自动”

    应用上述更改后,不要忘记重新启动IDE(Spyder、PyCharm等)

    干杯

    :)

    norm = matplotlib.colors.Normalize(vmin=0, vmax=1)
    im = plt.imshow(arr, norm=norm)