代码之家  ›  专栏  ›  技术社区  ›  Koreyuki

matplotlib的Funcanimation生成多个colorbar[duplicate]

  •  0
  • Koreyuki  · 技术社区  · 7 年前

    我想用matplotlib的FuncAnimation制作gif动画。

    这是密码。

    但是,输出图像包含多个这样的色条( link )

    有人知道怎么解决这个问题吗?

    如果我设置

    plt.colorbar() 
    

    就在之后还是之前

    ani = animation.FuncAnimation(fig, update, interval=100 ,frames=400)
    

    ,它返回 RuntimeError:找不到可用于colorbar创建的映射。首先定义一个可映射的对象,例如图像(使用imshow)或轮廓集(使用contourf)。

    import numpy as np
    import matplotlib
    import matplotlib.pyplot as plt
    import matplotlib.animation as animation
    from PIL import Image
    import moviepy.editor as edit
    from mpl_toolkits.axes_grid1 import make_axes_locatable
    def update(k):
        plt.cla() # clear axis
    
      #updating Val...
    
        plt.contourf(X0, Y0, Val, cmap = "bwr")
        plt.colorbar()
        plt.axes().set_aspect("equal")
        plt.title("title-name")
    
    fig = plt.figure()
    ani = animation.FuncAnimation(fig, update, interval=100 ,frames=400)
    ani.save("out.gif", writer='imagemagick')
    
    1 回复  |  直到 7 年前
        1
  •  0
  •   Koreyuki    7 年前

    我补充说

    plt.colorbar(plt.contourf(X0,Y0,charge,cmap="bwr",levels=np.linspace(-1,1,100,endpoint=True)))
    

    fig=plt.figure()
    

    它成功地工作了。 这个方法是从ImportanceOfBeingErnest先生的答案中采用的( Maintaining one colorbar for maptlotlib FuncAnimation