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


Posted in Python onDecember 13, 2019

我就废话不多说了,直接上代码吧!

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实现根据实时数据动态更新图形

以上这篇利用matplotlib实现根据实时数据动态更新图形就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Python 相关文章推荐
Python中字典的基础知识归纳小结
Aug 19 Python
遗传算法之Python实现代码
Oct 10 Python
python解决js文件utf-8编码乱码问题(推荐)
May 02 Python
利用python循环创建多个文件的方法
Oct 25 Python
python实现多层感知器MLP(基于双月数据集)
Jan 18 Python
解决python3中的requests解析中文页面出现乱码问题
Apr 19 Python
Python3实现将一维数组按标准长度分隔为二维数组
Nov 29 Python
Python解释器以及PyCharm的安装教程图文详解
Feb 26 Python
使用python实现微信小程序自动签到功能
Apr 27 Python
如何在sublime编辑器中安装python
May 20 Python
python中前缀运算符 *和 **的用法示例详解
May 28 Python
使用bandit对目标python代码进行安全函数扫描的案例分析
Jan 27 Python
Python3将jpg转为pdf文件的方法示例
Dec 13 #Python
如何使用python3获取当前路径及os.path.dirname的使用
Dec 13 #Python
PyQt5多线程刷新界面防假死示例
Dec 13 #Python
wxpython多线程防假死与线程间传递消息实例详解
Dec 13 #Python
python-web根据元素属性进行定位的方法
Dec 13 #Python
python Jupyter运行时间实例过程解析
Dec 13 #Python
Python time库基本使用方法分析
Dec 13 #Python
You might like
聊天室php&mysql(四)
2006/10/09 PHP
Zend 输出产生XML解析错误
2009/03/03 PHP
11个PHP 分页脚本推荐
2011/08/15 PHP
常见的四种POST 提交数据方式(小总结)
2015/10/08 PHP
PHP中Cookie的使用详解(简单易懂)
2017/04/28 PHP
Laravel的Auth验证Token验证使用自定义Redis的例子
2019/09/30 PHP
jQuery中将函数赋值给变量的调用方法
2012/03/23 Javascript
extjs4 treepanel动态改变行高度示例
2013/12/17 Javascript
动态的绑定事件addEventListener方法的使用
2014/01/24 Javascript
AngularJS学习笔记之ng-options指令
2015/06/16 Javascript
JS提示:Uncaught SyntaxError:Unexpected token ) 错误的解决方法
2016/08/19 Javascript
老生常谈Javascript中的原型和this指针
2016/10/09 Javascript
a标签置灰不可点击的实现方法
2017/02/06 Javascript
node操作mysql数据库实例详解
2017/03/17 Javascript
详谈innerHTML innerText的使用和区别
2017/08/18 Javascript
vue自动化表单实例分析
2018/05/06 Javascript
微信小程序ibeacon三点定位详解
2018/10/31 Javascript
Javascript执行流程细节原理解析
2020/05/14 Javascript
微信小程序手动添加收货地址省市区联动
2020/05/18 Javascript
Vue文本模糊匹配功能如何实现
2020/07/30 Javascript
AngularJs的$http发送POST请求,php无法接收Post的数据问题及解决方案
2020/08/13 Javascript
Vue看了就会的8个小技巧
2021/01/21 Vue.js
[06:21]2014DOTA2国际邀请赛 庆祝VG首阶段领跑;B叔为挣牛排半夜整理情报
2014/07/13 DOTA
跟老齐学Python之正规地说一句话
2014/09/28 Python
Python栈算法的实现与简单应用示例
2017/11/01 Python
Python实现监控键盘鼠标操作示例【基于pyHook与pythoncom模块】
2018/09/04 Python
Python 确定多项式拟合/回归的阶数实例
2018/12/29 Python
2020新版本pycharm+anaconda+opencv+pyqt环境配置学习笔记,亲测可用
2020/03/24 Python
django美化后台django-suit的安装配置操作
2020/07/12 Python
详解canvas绘制网络字体几种方法
2019/08/27 HTML / CSS
string = null 和string = ''的区别
2013/04/28 面试题
门卫班长岗位职责
2013/12/15 职场文书
2014年平安夜寄语
2014/12/08 职场文书
民事答辩状范本
2015/05/21 职场文书
CSS3 制作的图片滚动效果
2021/04/14 HTML / CSS
python中print格式化输出的问题
2021/04/16 Python