这篇文章给大家分享的是有关如何利用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实现根据实时数据动态更新图形”这篇文章就分享到这里了,希望以上内容可以对大家有一定的帮助,让大家可以学到更多知识,如果觉得文章不错,可以把它分享出去让更多的人看到吧!
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。