代码之家  ›  专栏  ›  技术社区  ›  blue-sky

未在Pycharm中显示的Matplotlib动画

  •  0
  • blue-sky  · 技术社区  · 7 年前

    正在尝试执行此代码:.

    “”“
    动画情节的简单示例
    “”“
    将numpy导入为np
    将matplotlib.pyplot导入为plt
    将matplotlib.animation导入为动画
    
    图,ax=plt.子批次()。
    
    x=np.平均值(0,2*np.pi,0.01)
    线,=ax.图(x,np.sin(x))。
    
    
    def动画(i):
    line.set_ydata(np.sin(x+i/10.0))更新数据
    回流管,
    
    
    #只需要初始化,Blitting才能提供一个干净的石板。
    def init():
    line.set_ydata(np.ma.array(x,mask=true))。
    回流管,
    
    ani=animation.funcanimation(图,animate,np.arange(1200),init_func=init,
    间隔=25,blit=真)
    请显示())
    

    src:https://matplotlib.org/examples/animation/simple-anim.html

    PyCharm中的显示:

    但该情节不是作为动画执行的。

    如何将此情节作为动画执行?是否需要编辑此python代码的pycharm配置? .

    源代码:https://matplotlib.org/examples/animation/simple_anim.html

    PyCharm中的显示:

    enter image description here

    但情节并不是以动画的形式执行的。

    如何将此情节作为动画执行?是否需要编辑此python代码的pycharm配置?

    1 回复  |  直到 7 年前
        1
  •  1
  •   blue-sky    7 年前

    这段代码起了作用:

    """
    A simple example of an animated plot
    """
    
    
        import matplotlib; matplotlib.use("TkAgg")
        import numpy as np
        import matplotlib.pyplot as plt
        import matplotlib.animation as animation
    
    
        fig, ax = plt.subplots()
    
        x = np.arange(0, 2*np.pi, 0.01)
        line, = ax.plot(x, np.sin(x))
    
    
        def animate(i):
            line.set_ydata(np.sin(x + i/10.0))  # update the data
            return line,
    
    
        # Init only required for blitting to give a clean slate.
        def init():
            line.set_ydata(np.ma.array(x, mask=True))
            return line,
    
        ani = animation.FuncAnimation(fig, animate, np.arange(1, 20000), init_func=init,
                                      interval=25, blit=True)
        plt.show()
    

    注释添加 import matplotlib; matplotlib.use("TkAgg")

    此外,这个问题/答案也有一定帮助: Matplotlib animations do not work in PyCharm