利用matplotlib实现根据实时数据动态更新图形
更新时间:2019年12月13日 09:37:47 作者:cakincqm
今天小编就为大家分享一篇利用matplotlib实现根据实时数据动态更新图形,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
我就废话不多说了,直接上代码吧!
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实现根据实时数据动态更新图形就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持脚本之家。
相关文章
Django2.1集成xadmin管理后台所遇到的错误集锦(填坑)
这篇文章主要介绍了Django2.1集成xadmin管理后台所遇到的错误集锦(填坑),小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧2018-12-12Python自动重新加载模块详解(autoreload module)
这篇文章主要介绍了Python自动重新加载模块详解(autoreload module),具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧2020-04-04OpenCV基础HSV颜色空间*args与**kwargs滑动条传参问题
这篇文章主要介绍了OpenCV基础中HSV颜色空间*args与**kwargs滑动条传参问题的详细解析,有需要的朋友可以借鉴参考下,希望能够有所帮助2021-10-10
最新评论