利用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创建和使用字典实例详解
Nov 01 Python
Python 元组(Tuple)操作详解
Mar 11 Python
python用来获得图片exif信息的库实例分析
Mar 16 Python
linux环境下python中MySQLdb模块的安装方法
Jun 16 Python
python OpenCV学习笔记之绘制直方图的方法
Feb 08 Python
python调用API实现智能回复机器人
Apr 10 Python
一文秒懂python读写csv xml json文件各种骚操作
Jul 04 Python
python实现超市管理系统(后台管理)
Oct 25 Python
利用Python的sympy包求解一元三次方程示例
Nov 22 Python
解决python多线程报错:AttributeError: Can't pickle local object问题
Apr 08 Python
浅谈Pycharm的项目文件名是红色的原因及解决方式
Jun 01 Python
Python安装Bs4的多种方法
Nov 28 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 mvc开发模式的感想
2011/06/28 PHP
PHP编码转换函数 自动转换字符集支持数组转换
2012/12/16 PHP
JavaScript中函数声明优先于变量声明的实例分析
2012/03/01 Javascript
JS localStorage实现本地缓存的方法
2013/06/22 Javascript
转换字符串为json对象的方法详解
2013/11/29 Javascript
C++中的string类的用法小结
2015/08/07 Javascript
JS+CSS3实现超炫的散列画廊特效
2016/07/16 Javascript
javascript之IE版本检测超简单方法
2016/08/20 Javascript
js带闹铃功能的倒计时代码
2016/09/29 Javascript
easyui导出excel无法弹出下载框的快速解决方法
2016/11/10 Javascript
jquery精度计算代码 jquery指定精确小数位
2017/02/06 Javascript
正则表达式基本语法及表单验证操作详解【基于JS】
2017/04/07 Javascript
微信小程序如何获知用户运行小程序的场景教程
2017/05/17 Javascript
小程序ios音频播放没声音问题的解决
2018/07/11 Javascript
Vue配合iView实现省市二级联动的示例代码
2018/07/27 Javascript
Vue列表渲染的示例代码
2018/11/01 Javascript
一个Java程序猿眼中的前后端分离以及Vue.js入门(推荐)
2019/04/19 Javascript
JS实现联想、自动补齐国家或地区名称的功能
2020/07/07 Javascript
python脚本实现分析dns日志并对受访域名排行
2014/09/18 Python
python根据时间生成mongodb的ObjectId的方法
2015/03/13 Python
python flask中静态文件的管理方法
2018/03/20 Python
python实现彩色图转换成灰度图
2019/01/15 Python
世界上最大的折扣香水店:FragranceNet.com
2016/10/26 全球购物
美丽的现代设计家具:2Modern
2018/07/26 全球购物
JD Sports芬兰:英国领先的运动鞋和运动服饰零售商
2018/11/16 全球购物
三星加拿大官方网上商店:Samsung CA
2020/12/18 全球购物
大学生个人简历自我评价
2013/11/16 职场文书
计算机软件个人的自荐信范文
2013/12/01 职场文书
档案管理员岗位职责
2013/12/01 职场文书
人事行政主管岗位职责
2013/12/22 职场文书
工作评语大全
2014/04/26 职场文书
小学班主任自我评价
2015/03/11 职场文书
2015年工商所工作总结
2015/05/21 职场文书
中学后勤工作总结2015
2015/07/22 职场文书
创业计划书之废品回收
2019/09/26 职场文书
制作能在nginx和IIS中使用的ssl证书
2021/06/21 Servers