利用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()

二 运行结果

利用matplotlib实现根据实时数据动态更新图形

来源: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
  • asp之家 网络编程 m.aspxhome.com