一般而言,在绘制复杂动画时,主要借助模块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

最新文章

  1. 菜鸟快飞之JavaScript对象、原型、继承(一)
  2. div不换行_div同行_div强制不换行
  3. socketAPI:一个最简单的服务器和对应的客户端C语言的实现
  4. 9月20日上午JavaScript函数
  5. ORACLE分页查询SQL语法——最高效的分页
  6. Android启动Activity的两种方式与四种启动模式
  7. jquery easyui防止超出浏览器边界
  8. Zabbix3.0完整部署
  9. vert.x 学习笔记
  10. python3实现感知器,简单神经网络
  11. [翻译]60,000毫秒内对Linux进行性能诊断
  12. MVC实现删除数据库记录
  13. PHP获取指定函数定义在哪个文件中及行号
  14. spring 下载
  15. spring boot 2.0 + 静态资源被拦截,怎么办?
  16. 51nod 1443 路径和树(最短路)
  17. CFGym 101490J 题解
  18. Python 小知识点(8)-- __new__
  19. explain获得使用的key的数据
  20. 线程池ThreadPool详解

热门文章

  1. NOIP 模拟 $25\; \rm random$
  2. NOIP 模拟 $12\; \text{简单的填数}$
  3. 题解 P3941 入阵曲
  4. EZpop分析
  5. 把 nodejs koa2 制作的后台接口 部署到 腾讯云服务器
  6. FileUtils常用方法 - commons-io常用工具类
  7. 在Java泛型
  8. Difference between trustStore and keyStore in Java - SSL
  9. JavaWeb之JavaMail
  10. spring-data-redis 连接泄漏,我 TM 人傻了