利用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 相关文章推荐
pyv8学习python和javascript变量进行交互
Dec 04 Python
仅用50行代码实现一个Python编写的计算器的教程
Apr 17 Python
Python基于Pymssql模块实现连接SQL Server数据库的方法详解
Jul 20 Python
Python AES加密实例解析
Jan 18 Python
pygame游戏之旅 创建游戏窗口界面
Nov 20 Python
Python关于excel和shp的使用在matplotlib
Jan 03 Python
python中实现控制小数点位数的方法
Jan 24 Python
python笔记_将循环内容在一行输出的方法
Aug 08 Python
Python如何实现爬取B站视频
May 20 Python
Pycharm添加虚拟解释器报错问题解决方案
Oct 13 Python
scrapy redis配置文件setting参数详解
Nov 18 Python
Python matplotlib可视化之绘制韦恩图
Feb 24 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
第六节 访问属性和方法 [6]
2006/10/09 PHP
mysql 搜索之简单应用
2007/04/27 PHP
深入理解PHP之OpCode原理详解
2016/06/01 PHP
PHP实现的登录页面信息提示功能示例
2017/07/24 PHP
Laravel 关联模型-关联新增和关联更新的方法
2019/10/10 PHP
javascript 短路法代码精简
2009/08/20 Javascript
stream.js 一个很小、完全独立的Javascript类库
2011/10/28 Javascript
javascript模拟地球旋转效果代码实例
2013/12/02 Javascript
详解JavaScript语法对{}处理的坑爹之处
2014/06/05 Javascript
JavaScript Math.ceil 方法(对数值向上取整)
2015/01/09 Javascript
JavaScript 学习笔记之基础中的基础
2015/01/13 Javascript
jQuery实现字符串按指定长度加入特定内容的方法
2015/03/11 Javascript
js实现页面a向页面b传参的方法
2016/05/29 Javascript
利用JQuery阻止事件冒泡
2016/12/01 Javascript
详解windows下vue-cli及webpack 构建网站(三)使用组件
2017/06/17 Javascript
Angular实现点击按钮后在上方显示输入内容的方法
2017/12/27 Javascript
vue使用xe-utils函数库的具体方法
2018/03/06 Javascript
详解angular分页插件tm.pagination二次触发问题解决方案
2018/07/20 Javascript
对angular 监控数据模型变化的事件方法$watch详解
2018/10/09 Javascript
从零开始实现Vue简单的Toast插件
2018/12/03 Javascript
vue分页器组件编写方法详解
2019/06/28 Javascript
element中el-container容器与div布局区分详解
2020/05/13 Javascript
vue自定义插件封装,实现简易的elementUi的Message和MessageBox的示例
2020/11/20 Vue.js
[02:43]中国五虎出征TI3视频
2013/08/02 DOTA
python中nan与inf转为特定数字方法示例
2017/05/11 Python
Python Matplotlib库安装与基本作图示例
2019/01/09 Python
Python pygame绘制文字制作滚动文字过程解析
2019/12/12 Python
解决Keras 中加入lambda层无法正常载入模型问题
2020/06/16 Python
Python -m参数原理及使用方法解析
2020/08/21 Python
HTML5中通过li-canvas轻松实现单图、多图、圆角图绘制,单行文字、多行文字等
2018/11/30 HTML / CSS
Shell编程面试题
2012/05/30 面试题
工程售后服务方案
2014/06/08 职场文书
党员批评与自我批评
2014/10/15 职场文书
文明单位创建材料
2014/12/24 职场文书
关于倡议书的范文
2015/04/29 职场文书
撤诉书怎么写
2015/05/19 职场文书