利用matplotlib实现根据实时数据动态更新图形
我就废话不多说了,直接上代码吧!
fromtimeimportsleep fromthreadingimportThread importnumpyasnp importmatplotlib.pyplotasplt frommatplotlib.widgetsimportButton 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 #线程函数,用来更新数据并重新绘制图形 defthreadStart(self): whileself.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实现根据实时数据动态更新图形就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持毛票票。
声明:本文内容来源于网络,版权归原作者所有,内容由互联网用户自发贡献自行上传,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任。如果您发现有涉嫌版权的内容,欢迎发送邮件至:czq8825#qq.com(发邮件时,请将#更换为@)进行举报,并提供相关证据,一经查实,本站将立刻删除涉嫌侵权内容。