利用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 Mysql自动备份脚本
Jul 14 Python
Python列表推导式的使用方法
Nov 21 Python
基于tensorflow加载部分层的方法
Jul 26 Python
flask框架中勾子函数的使用详解
Aug 01 Python
python实现dijkstra最短路由算法
Jan 17 Python
python 对类的成员函数开启线程的方法
Jan 22 Python
Django ORM 聚合查询和分组查询实现详解
Aug 09 Python
Django框架反向解析操作详解
Nov 28 Python
python实现三种随机请求头方式
Jan 05 Python
python实现b站直播自动发送弹幕功能
Feb 20 Python
Django基础CBV装饰器和中间件
Mar 22 Python
尝试使用Python爬取城市租房信息
Apr 12 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
ajax缓存问题解决途径
2006/12/06 PHP
基于php实现长连接的方法与注意事项的问题
2013/05/10 PHP
利用php + Laravel如何实现部署自动化详解
2017/10/11 PHP
jQuery学习3:操作元素属性和特性
2010/02/07 Javascript
Mac地址验证的javascript代码
2013/11/09 Javascript
javascript中slice(),splice(),split(),substring(),substr()使用方法
2015/03/13 Javascript
jQuery的事件委托实例分析
2015/07/15 Javascript
javascript生成不重复的随机数
2015/07/17 Javascript
深入理解JS函数的参数(arguments)的使用
2016/05/28 Javascript
浅谈JavaScript的自动垃圾收集机制
2016/12/15 Javascript
BootStrap 模态框实现刷新网页并关闭功能
2017/01/04 Javascript
Angular获取手机验证码实现移动端登录注册功能
2017/05/17 Javascript
Javascript 实现匿名递归的实例代码
2017/05/25 Javascript
在iFrame子页面里实现模态框的方法
2018/08/17 Javascript
微信小程序自定义带价格显示日历效果
2018/12/29 Javascript
jQuery实现为table表格动态添加或删除tr功能示例
2019/02/19 jQuery
layui按条件隐藏表格列的实例
2019/09/19 Javascript
如何基于layui的laytpl实现数据绑定的示例代码
2020/04/10 Javascript
Vue路由的模块自动化与统一加载实现
2020/06/05 Javascript
学前端,css与javascript重难点浅析
2020/06/11 Javascript
ES11屡试不爽的新特性,你用上了几个
2020/10/21 Javascript
Python中join和split用法实例
2015/04/14 Python
深入理解python函数递归和生成器
2016/06/06 Python
Python实现读取json文件到excel表
2017/11/18 Python
python正则实现计算器功能
2017/12/14 Python
解决python3 json数据包含中文的读写问题
2018/05/10 Python
利用python实现在微信群刷屏的方法
2019/02/21 Python
Python3实现zip分卷压缩过程解析
2019/10/09 Python
pyautogui自动化控制鼠标和键盘操作的步骤
2020/04/01 Python
纯CSS实现的大小渐变、渐远效果
2014/04/15 HTML / CSS
Bed Bath & Beyond加拿大官网:购买床上用品、浴巾、厨房电器等
2019/10/04 全球购物
俄罗斯家居用品购物网站:Евродом
2020/11/21 全球购物
财务会计人员岗位职责
2013/11/30 职场文书
AJAX实现指定部分页面刷新效果
2021/10/16 Javascript
分析SQL窗口函数之聚合窗口函数
2022/04/21 Oracle
JS前端可视化canvas动画原理及其推导实现
2022/08/05 Javascript