利用matplotlib实现根据实时数据动态更新图形
作者:cakincqm 时间:2023-07-17 18:50:45
我就废话不多说了,直接上代码吧!
from time import sleep
from threading importThread
import numpy as np
import matplotlib.pyplot as plt
from matplotlib.widgets importButton
fig, ax = plt.subplots()
#设置图形显示位置
plt.subplots_adjust(bottom=0.2)
#实验数据
range_start, range_end, range_step =0,1,0.005
t = np.arange(range_start, range_end, range_step)
s = np.sin(4*np.pi*t)
l,= plt.plot(t, s, lw=2)
#自定义类,用来封装两个按钮的单击事件处理函数
classButtonHandler:
def __init__(self):
self.flag =True
self.range_s, self.range_e, self.range_step =0,1,0.005
#线程函数,用来更新数据并重新绘制图形
def threadStart(self):
while self.flag:
sleep(0.02)
self.range_s += self.range_step
self.range_e += self.range_step
t = np.arange(self.range_s, self.range_e, self.range_step)
ydata = np.sin(4*np.pi*t)
#更新数据
l.set_xdata(t-t[0])
l.set_ydata(ydata)
#重新绘制图形
plt.draw()
defStart(self, event):
self.flag =True
#创建并启动新线程
t =Thread(target=self.threadStart)
t.start()
defStop(self, event):
self.flag =False
callback =ButtonHandler()
#创建按钮并设置单击事件处理函数
axprev = plt.axes([0.81,0.05,0.1,0.075])
bprev =Button(axprev,'Stop')
bprev.on_clicked(callback.Stop)
axnext = plt.axes([0.7,0.05,0.1,0.075])
bnext =Button(axnext,'Start')
bnext.on_clicked(callback.Start)
plt.show()
二 运行结果
来源:https://blog.csdn.net/chengqiuming/article/details/78601415
标签:matplotlib,数据,更新图形
0
投稿
猜你喜欢
详解MySQL的sql_mode查询与设置
2024-01-14 08:30:20
python实现翻转棋游戏(othello)
2022-06-02 10:40:19
MySQL主从搭建(多主一从)的实现思路与步骤
2024-01-18 01:14:02
SQL处理多级分类,查询结果呈树形结构
2012-08-21 10:50:12
Vue实现数据请求拦截
2024-05-05 09:24:11
PyCharm 2020 激活到 2100 年的教程
2021-01-19 12:30:43
vue.js实现含搜索的多种复选框(附源码)
2024-05-13 09:11:00
Python数据结构之顺序表的实现代码示例
2021-02-22 07:13:08
5款最强且免费的Python IDE小结
2022-12-07 05:25:19
Python图像读写方法对比
2022-10-07 08:13:46
Go语言反射获取类型属性和方法示例
2024-05-05 09:32:42
在Django的View中使用asyncio的方法
2022-04-10 13:16:41
常见SQL Server 2000漏洞及其相关利用
2007-10-01 14:45:00
详解Python如何实现批量为PDF添加水印
2022-06-20 23:33:58
Python调用Jar包的两种方式小结
2023-07-26 06:29:12
Python eval函数原理及用法解析
2021-04-29 05:17:18
Git Submodule使用完整教程(小结)
2022-06-29 21:01:06
web前端vue之CSS过渡效果示例
2024-04-10 10:33:20
Asp+Sql 对数据库的各种操作
2007-09-22 10:38:00
python使用梯度下降和牛顿法寻找Rosenbrock函数最小值实例
2022-09-10 20:01:20