zoukankan      html  css  js  c++  java
  • 『Python』matplotlib实现动画效果

    一般而言,在绘制复杂动画时,主要借助模块animation来完成

    import numpy as np
    import matplotlib.pyplot as plt
    import matplotlib as mpl
    from matplotlib.animation import FuncAnimation
    
    # mpl.use("Qt5Agg")
    
    mpl.rcParams['font.sans-serif'] = ['SimHei']
    mpl.rcParams['font.serif'] = ['SimHei']
    mpl.rcParams['axes.unicode_minus'] = False  # 解决保存图像是负号'-'显示为方块的问题,或者转换负号为字符串
    
    fig, ax = plt.subplots(1, 1)
    
    x = np.linspace(0, 2 * np.pi, 5000)
    y = np.exp(-x) * np.cos(2 * np.pi * x)
    line, = ax.plot(x, y, color="cornflowerblue", lw=3)
    ax.set_ylim(-1.0, 1.0)
    
    
    # to clear current frame
    def init():
        line.set_ydata([np.nan] * len(x))
        return line,
    
    
    # to update the data
    def animate(data):
        line.set_ydata(np.exp(-x) * np.cos(2 * np.pi * x + float(data) / 100))
        return line,
    
    
    # to call class FuncAnimation which connects animate and init
    ani = FuncAnimation(fig, animate, init_func=init, frames=200, interval=2, blit=True)
    
    # to save the animation
    ani.save("movie.mp4", fps=20, writer="ffmpeg")
    
    plt.show()
    

    下面展示其中的4帧结果

    • line,中的逗号是不能省略的,不然就不是Line2D对象了

    • FuncAnimation的构造函数主要的参数有Figure对象、函数func、帧数frames,帧时间间隔interval

  • 相关阅读:
    图片移动特效
    风云舞
    弹出页面
    javascript放大镜原版
    jquery UI入门
    AJAX demo——操作文本文件
    上一页 1 2 ...10 下一页 百度 GOOGLE 分页
    在后台调用JavaScript打开新页面
    Ext简介
    My97DatePicker
  • 原文地址:https://www.cnblogs.com/ice-coder/p/12908708.html
Copyright © 2011-2022 走看看