利用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读写及压缩和解压缩文件的示例
Jul 08 Python
python获取当前目录路径和上级路径的实例
Apr 26 Python
selenium+python 去除启动的黑色cmd窗口方法
May 22 Python
Python基于递归算法求最小公倍数和最大公约数示例
Jul 27 Python
解决Pycharm出现的部分快捷键无效问题
Oct 22 Python
打包python 加icon 去掉cmd黑窗口方法
Jun 24 Python
python实现列表的排序方法分享
Jul 01 Python
Python类继承和多态原理解析
Feb 05 Python
pyinstaller打包成无控制台程序时运行出错(与popen冲突的解决方法)
Apr 15 Python
浅谈sklearn中predict与predict_proba区别
Jun 28 Python
python批量修改交换机密码的示例
Sep 22 Python
python里反向传播算法详解
Nov 22 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
mysql时区问题
2008/03/26 PHP
PHP CURL 多线程操作代码实例
2015/05/13 PHP
WordPress网站性能优化指南
2015/11/18 PHP
PHP的mysqli_stat()函数讲解
2019/01/23 PHP
tp5.1 框架数据库高级查询技巧实例总结
2020/05/25 PHP
『jQuery』取指定url格式及分割函数应用
2013/04/22 Javascript
jquery如何通过name名称获取当前name的value值
2013/12/20 Javascript
moment.js轻松实现获取当前日期是当年的第几周
2015/02/05 Javascript
JavaScript实现自动消除按钮功能的方法
2015/08/05 Javascript
javascript原生ajax写法分享
2016/04/10 Javascript
详解react服务端渲染(同构)的方法
2017/09/21 Javascript
微信小程序组件之srcoll-view的详解
2017/10/19 Javascript
JS实现面向对象继承的5种方式分析
2018/07/21 Javascript
iview Upload组件多个文件上传的示例代码
2018/09/30 Javascript
详解puppeteer使用代理
2018/12/27 Javascript
Node.js Buffer模块功能及常用方法实例分析
2019/01/05 Javascript
Vue中使用matomo进行访问流量统计的实现
2019/11/05 Javascript
微信小程序实现星级评价
2019/11/20 Javascript
JS函数本身的作用域实例分析
2020/03/16 Javascript
vue设置默认首页的操作
2020/08/12 Javascript
[10:39]DOTA2上海特级锦标赛音乐会纪录片
2016/03/21 DOTA
Python实现在线暴力破解邮箱账号密码功能示例【测试可用】
2017/09/06 Python
机器学习python实战之手写数字识别
2017/11/01 Python
Python中常用的内置方法
2019/01/28 Python
审计主管岗位职责
2014/01/31 职场文书
大学军训感想
2014/02/12 职场文书
学生生病请假条范文
2014/02/16 职场文书
奥林匹克的口号
2014/06/13 职场文书
员工年终自我评价
2014/09/14 职场文书
防汛工作情况汇报
2014/10/28 职场文书
学生个人评语大全
2015/01/04 职场文书
新教师个人工作总结
2015/02/06 职场文书
大学生学年个人总结
2015/02/15 职场文书
房屋维修申请报告
2015/05/18 职场文书
2015年学校党建工作总结
2015/05/19 职场文书
Oracle 数据仓库ETL技术之多表插入语句的示例详解
2021/04/12 Oracle