Python matplotlib 动画绘制详情
作者:Chandler_river 时间:2022-04-12 14:36:52
最最简单的操作
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
标签:Python,matplotlib,动画,绘制
0
投稿
猜你喜欢
python数据挖掘需要学的内容
2021-02-26 00:54:13
Python绘制散点密度图的三种方式详解
2021-12-07 00:21:04
用户的期望以及背后真正的需求
2009-06-19 12:39:00
python自动化测试selenium操作下拉列表实现
2023-09-06 00:26:50
如何在事件代理中正确使用 focus 和 blur 事件
2010-01-30 12:51:00
python爬虫框架feapder的使用简介
2021-07-20 14:38:27
Python使用pywebview开发桌面应用的全过程
2023-08-16 09:11:18
python中列表和元组的区别
2022-05-21 16:06:00
Python简单网络编程示例【客户端与服务端】
2023-12-07 10:26:55
HTML 5 Video概述
2010-06-23 18:56:00
Django项目连接MongoDB的三种方法
2022-05-27 05:23:43
jupyter notebook tensorflow打印device信息实例
2021-02-06 09:34:40
如何卸载python插件
2023-11-21 22:24:31
JavaScript实现的背景自动变色代码
2024-04-16 09:02:17
Go语言实现文件上传
2023-07-08 18:26:38
Python 安装setuptools和pip工具操作方法(必看)
2023-11-06 11:46:07
mpvue+vant app搭建微信小程序的方法步骤
2024-05-29 22:22:42
js如何读取csv内容拼接成json
2023-08-13 02:20:14
网页制作前台之javascript
2013-07-23 08:32:59
使用Python编写类UNIX系统的命令行工具的教程
2023-08-24 05:03:02