Python之数据分析(生成动态图像、示波器效果)
程序员文章站
2022-07-02 23:46:07
文章目录1、效果展示2、动画分析3、案例源码1、效果展示动态更新波形图:静态图:2、动画分析这是一个使用了生成器的动画效果,生成器里面会不断生成新的值,然后放到更新函数里面在指定的interval间隔时间里执行,将其渲染出图像def 更新函数(生成值): 更新画面帧来渲染def 生成器(): for...: 产生新的数据 yield 生成值创建动画:ma.FuncAnimation(图形对象, 更新函数, 生成器, interv...
1、效果展示
- 动态更新波形图:
- 静态图:
2、动画分析
- 这是一个使用了生成器的动画效果,生成器里面会不断生成新的值,然后放到更新函数里面在指定的interval间隔时间里执行,将其渲染出图像
def 更新函数(生成值):
更新画面帧来渲染
def 生成器():
for...:
产生新的数据
yield 生成值
- 创建动画:ma.FuncAnimation(图形对象, 更新函数, 生成器, interval=间隔时间(毫秒))
3、案例源码
import numpy as np
import matplotlib.pylab as mp
import matplotlib.animation as ma
mp.figure("Signal", facecolor='lightgray')
mp.title('Signal', fontsize=20)
mp.xlabel('Time', fontsize=14) # 横纵坐标标签
mp.ylabel('Signal', fontsize=14)
ax = mp.gca() # 获取坐标轴
ax.set_ylim(-3, 3) # 垂直坐标范围
ax.set_xlim(0, 10)
mp.tick_params(labelsize=10) # 精度值
mp.grid(linestyle=':') # 网格线
# 创建一个plot空对象(只是没有数据,仍然是一个完整的图像)
pl = mp.plot([], [], c="orangered")[0] # 有很多个元素,此处取一个处理
pl.set_data([], []) # 设置数据,此处给的空数据,以便于之后将生成器的数据传入
# 接收生成器数据的更新函数
def update(data):
t, v = data # 时间,生成器的值
x, y = pl.get_data() # 获取生成器数据
# 追加数据
x.append(t)
y.append(v)
# 移动坐标轴位置,以便持续观察数据
# 获取当前坐标轴的最小值与最大值,即坐标系的左右边界
x_min, x_max = ax.get_xlim()
if t >= x_max:
# 平移坐标轴:将最小值变为当前位置减去窗口宽度,最大值变为当前值
ax.set_xlim(t - (x_max - x_min), t)
# 坐标系起点终点都改变了,需要重新画一个画布
ax.figure.canvas.draw()
# 修改数据
pl.set_data(x, y)
# 生成器函数
def generator():
t = 0 # 时间
while True:
# 用正弦函数来生成数据
v = np.sin(2 * np.pi * t) * np.exp(
np.sin(0.2 * np.pi * t)
) # 振幅呈正弦规律变化的正弦函数
yield t, v # yield的会保存状态的返回,与return不同
t += 0.05
# 生成动画
anim = ma.FuncAnimation(mp.gcf(), update, generator, interval=5)
mp.show()
本文地址:https://blog.csdn.net/Viewinfinitely/article/details/107326826
上一篇: 荐 Python菜鸟入门:day06
下一篇: 爱奇艺如何预约电影?
推荐阅读
-
荐 Python之数据分析(三维立体图像、极坐标系、半对数坐标)
-
Python数据分析之画图力气pyecharts 制作3D图像!
-
Python爬虫与数据分析之进阶教程:文件操作、lambda表达式、递归、yield生成器
-
Python之数据分析(生成动态图像、示波器效果)
-
荐 Python之数据分析(三维立体图像、极坐标系、半对数坐标)
-
Python数据分析之画图力气pyecharts 制作3D图像!
-
Python之数据分析(生成动态图像、示波器效果)
-
Python爬虫与数据分析之进阶教程:文件操作、lambda表达式、递归、yield生成器
-
Python数据分析三大框架之matplotlib(三)3D图像绘制