• 『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

  • 相关阅读:
    ftp连接
    Excel表格内容导出到页面
    jquery 元素前或插入一元素
    sql 查出相同的记录 并把相同记录 显示在一起
    ie 使用window.open页面报错
    java生成word文档
    myeclipse导入项目
    java生成临时文件夹和删除临时文件夹
    正则学习笔记
    React和Vue的组件更新比较
  • 原文地址:https://www.cnblogs.com/ice-coder/p/12908708.html
Copyright © 2020-2023  润新知