利用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实现根据实时数据动态更新图形就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持脚本之家。

相关文章

  • 解决pycharm最左侧Tool Buttons显示不全的问题

    解决pycharm最左侧Tool Buttons显示不全的问题

    今天小编就为大家分享一篇解决pycharm最左侧Tool Buttons显示不全的问题,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2019-12-12
  • cProfile Python性能分析工具使用详解

    cProfile Python性能分析工具使用详解

    这篇文章主要介绍了cProfile Python性能分析工具使用详解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2019-07-07
  • python实现决策树分类算法

    python实现决策树分类算法

    这篇文章主要为大家详细介绍了python实现决策树分类算法,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2017-12-12
  • 详细介绍在pandas中创建category类型数据的几种方法

    详细介绍在pandas中创建category类型数据的几种方法

    这篇文章主要介绍了详细介绍在pandas中创建category类型数据的几种方法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2021-04-04
  • 在windows下快速搭建web.py开发框架方法

    在windows下快速搭建web.py开发框架方法

    这篇文章主要介绍了在windows下快速搭建web.py开发框架方法,需要的朋友可以参考下
    2016-04-04
  • Python实现自动化发送邮件

    Python实现自动化发送邮件

    大家好,本篇文章主要讲的是Python实现自动化发送邮件,感兴趣的同学赶快来看一看吧,对你有帮助的话记得收藏一下
    2022-01-01
  • 用Python制作简单的朴素基数估计器的教程

    用Python制作简单的朴素基数估计器的教程

    这篇文章主要介绍了用Python制作简单的朴素基数估计器的教程,同时介绍了如何去改进精度来进行算法优化,需要的朋友可以参考下
    2015-04-04
  • Python使用py2neo操作图数据库neo4j的方法详解

    Python使用py2neo操作图数据库neo4j的方法详解

    这篇文章主要介绍了Python使用py2neo操作图数据库neo4j的方法,结合实例形式详细分析了Python使用py2neo操作图数据库neo4j的具体步骤、原理、相关使用技巧与操作注意事项,需要的朋友可以参考下
    2020-01-01
  • Python控制台输出俄罗斯方块的方法实例

    Python控制台输出俄罗斯方块的方法实例

    这篇文章主要给大家介绍了关于Python控制台输出俄罗斯方块的相关资料,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2021-04-04
  • 基于Python实现人脸识别和焦点人物检测功能

    基于Python实现人脸识别和焦点人物检测功能

    基于dlib库的模型,实现人脸识别和焦点人物的检测。最后呈现的效果为焦点人物的识别框颜色与其他人物框不一样。对Python人脸识别和焦点人物检测设计过程感兴趣的朋友一起看看吧
    2021-10-10

最新评论