Python matplotlib 动画绘制详情
作者:Chandler_river 发布时间:2022-04-12 14:36:52
标签:Python,matplotlib,动画,绘制
最最简单的操作
import numpy as np
import matplotlib.pyplot as plt
fig = plt.figure()
ax = fig.subplots()
x = np.linspace(0,10,100)
y = np.sin(x)
while True:
ax.plot(x,y)
plt.pause(1)
ax.cla()
x += np.pi/30
y = np.sin(x)
有人会问,为什么不能直接 用 plot 替代 ax 呢?
好问题,你可以一试,会发现这玩意没法关掉 。。 当然 ctrl + C等暴力手段是任何时候都ok的
Animation类
FuncAnimation
import numpy as np
import matplotlib.pyplot as plt
from matplotlib.animation import FuncAnimation
import numpy as np
import matplotlib.pyplot as plt
from matplotlib.animation import FuncAnimation
fig = plt.figure()
ax = fig.subplots()
x = np.linspace(0,10,100)
y = np.sin(x)
ax.set_aspect(3)
ax.plot(x,y,'-.',c='red',label="the old one")
line = ax.plot(x,y,c='green')
plt.legend()
def fun(i):
global x
x += 0.1
y = np.sin(x)
line[0].set_ydata(y)
return line
animation = FuncAnimation(fig,fun,interval=100)
plt.show()
这就有两个问题需要解决一下
第一个:line到底是什么类型的东西
type(line)
<class 'list'>
明显,这就是。。列表。
第二个:set_data;set_xdata;set_ydata
你可以自己更改一下试试看,结果是显而易见的
ArtistAnimation
它的好处是你不要费尽心机去想一个可能 勾八 的函数了
它的坏处是 :
一个能用函数表示的动画 为什么要在新增一个列表才能表达呢?
import numpy as np
import matplotlib.pyplot as plt
from matplotlib.animation import ArtistAnimation
fig = plt.figure()
ax = fig.subplots()
frames = []
x = np.linspace(0,np.pi*2,10)
for i in range(20):
x += np.pi*2/20
y = np.sin(x)
frames.append(ax.plot(y,'-.',c='red'))
animation = ArtistAnimation(fig,frames,interval=100)
plt.show()
很好!现在只需要保存动画就圆满了
动画保存
.save()函数
filename | 画文件名+后缀 |
fps | 动画每秒的帧数 默认值为 原动画的帧数 |
dpi | 动画每英寸的点数 默认值为 原动画的点数 |
codec | 编码格式 默认值为’h264’ |
filename画文件名+后缀fps动画每秒的帧数 默认值为 原动画的帧数dpi动画每英寸的点数 默认值为 原动画的点数codec编码格式 默认值为’h264’
animation.save("1.gif")
来源:https://blog.csdn.net/Chandler_river/article/details/126629490


猜你喜欢
- TensorFlow训练时,遇到内存不断增长,最终导致内存不足,进程被杀死。在这里我不准备对造成这一现象的所有原因进行探讨,只是记录一下我在
- <htmlxmlns="http://www.w3.org/1999/xhtml"> <head>
- 1.简单检索数据博客内容中student表为:1.1.检索单个列select + 列名 + from + 表名1.2.检索多个列select
- 步骤:1.从php.net上面下载php5.3.x版本的源码;2.centos安装相应的扩展包:yum install libmcrypt
- 最近一直在用Vs2013调试编译opencv,意外发现一个超级赞的图片查看的插件, 超级方便易用的一个插件,直接以图片形式可视化了openc
- 虽然Python被说成是一种解释型语言,但是实际上,Python源程序要先经过编译,然后才能运行。与Java语言类似,Python源程序编译
- 在ASP中使用FSO组件生成HTML静态页面,共有两个页面index.htm是首页.程序比较简单,主要是用了ASP里的文件操作
- 目录前言1. 准备工作2. 连接MongoDB3. 指定数据库4. 指定集合5. 插入数据6. 查询7. 计数8. 排序9. 偏移10. 更
- 题目:有四个数字:1、2、3、4,能组成多少个互不相同且无重复数字的三位数?各是多少?程序分析:可填在百位、十位、个位的数字都是1、2、3、
- __author__ = 'Administrator'import numpy as npimport cv2mri_im
- 在做开发的朋友特别是和mysql有接触的朋友会碰到有时mysql查询很慢,当然我指的是大数据量百万千万级了,不是几十条了,下面我们来看看解决
- 最近JETBRAINS发布了目前最受欢迎的python-web开发框架,可以看到最受欢迎的还是Django和Flask,那么本文就对上榜的1
- *args与**kwarsg及闭包和装饰器过程先理解闭包,再理解装饰器,不要忘了不定长参数def func():
- 就像这个图的样子:解决方法,setting.py中DEBUG选项为True,否则无法映射到静态文件目录来源:https://blog.csd
- 内存溢出问题是参加kaggle比赛或者做大数据量实验的第一个拦路虎。以前做的练手小项目导致新手产生一个惯性思维——读取训练集图片的时候把所有
- 实现一个柱状图,这个柱状图的高度在不停的刷新,效果如下:官网是没有动态刷新的示例的,由于需要我查看了其源码,并根据之前示例做出了动态柱状图的
- 一般情况下会有几种情况需要你把数据库设为只读: 1. Insert,Update,Delete 触发器 2. Check 约束 和 Dele
- 目录1.程序入口2.__name__是什么?场景1:直接运行脚本场景2:从其他脚本导入3.__name__可以显示包路径5.测试模块里函数关
- 本文实例讲述了Python实现周期性抓取网页内容的方法。分享给大家供大家参考,具体如下:1.使用sched模块可以周期性地执行指定函数2.在
- 一. 开发工具1)sql2go用于将 sql 语句转换为 golang 的 struct. 使用 ddl 语句即可。例如对于创建表的语句: