使用matplotlib动态刷新指定曲线实例


Posted in Python onApril 23, 2020

我就废话不多说啦,还是直接看代码吧!

from matplotlib import pyplot as plt
import numpy as np
 
x = np.linspace(1, 100, 20)
y = x *2 +3
fig = plt.figure()
ax = fig.add_subplot(1,1,1)
ax.scatter(x, y)
plt.ion()
for i in range(10):
 y = x*i*0.1 + i
 try:
  ax.lines.remove(lines[0])
 except Exception:
  pass
 lines = ax.plot(x ,y)
 plt.pause(0.1)

补充知识:用Python的matplotlib库动态显示不断增长的数据

"""
Created on Mon Dec 07 16:34:10 2015

@author: SuperWang
"""

import matplotlib.pyplot as plt
import numpy as np

fig,ax=plt.subplots()
fig2,ax2=plt.subplots()


y1=[]
y2=[]

for i in range(50):
 y1.append(np.sin(i))
 y2.append(np.cos(i))
 ax.cla()
 ax.set_title("Loss")
 ax.set_xlabel("Iteration")
 ax.set_ylabel("Loss")
 ax.set_xlim(0,55)
 ax.set_ylim(-1,1)
 ax.grid()
 ax.plot(y1,label='train')
 ax.plot(y2,label='test')
 ax.legend(loc='best')

 ax2.cla()
 ax2.set_title("Loss")
 ax2.set_xlabel("Iteration")
 ax2.set_ylabel("Loss")
 ax2.set_xlim(0,55)
 ax2.set_ylim(-1,1)
 ax2.grid()
 ax2.plot(y1,label='train')
 ax2.plot(y2,label='test')
 ax2.legend(loc='best')
 plt.pause(1)

要解决的问题如标题所示,原理很简单,就是当数据增长时,不断清空以前的绘画内容,然后把现有的数据重新画出来(数据是胡乱生成的)。

具体过程如下:

fig,ax=plt.subplots() 产生一个figure对象和一个axis对象。figure相当于一个窗口,而axis相当于一个画布。此句也可以用两句生成,即fig=plt.figure(num),括号中的参数是figure的ID,如果只需创建一个figure对象,那么可以省略。然后ax=fig.subplot(1,1,1),subplot()的具体用法可以去google或百度一下。ax.cla()就是在新数据到来时,先把之前的绘制的内容清空,接下来,ax.set_title(“Loss”),ax.set_xlabel(“Iteration”),ax.set_ylabel(“Loss”)都很简单,见名知意。ax.set_xlim(0,55),ax.set_ylim(-1,1)分别用来设置x轴和y轴的两个端点。ax.grid()给画布加上网格。ax.plot(y1,label='train'),ax.plot(y2,label='test')这两句是实际的绘制命令,其中,参数label是为以后生成图例用的。ax2.legend(loc='best')用来生成图例,loc参数代表图例位置location,而value:‘best'是其中的一种选择,除此之外,还有左上角等其他选项。最后,plt.pause(1)是为了显示上更直观,故意每绘制一次,暂停1秒,注意,这里的单位是秒。如果是实际的应用,而数据生成的过程又比较慢,此句完全可以省略。

这段代码中创建了两个窗口,在实验过程中,我发现只能有一个窗口被选中,即用鼠标点击哪个窗口,哪个窗口会动态地显示绘画过程,而另一个保持不动。

绘画过程截图如下:

使用matplotlib动态刷新指定曲线实例

以上这篇使用matplotlib动态刷新指定曲线实例就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Python 相关文章推荐
python实现超简单端口转发的方法
Mar 13 Python
python监控网站运行异常并发送邮件的方法
Mar 13 Python
Python系统监控模块psutil功能与经典用法分析
May 24 Python
Windows下Python3.6安装第三方模块的方法
Nov 22 Python
djang常用查询SQL语句的使用代码
Feb 15 Python
Python3.8中使用f-strings调试
May 22 Python
创建Django项目图文实例详解
Jun 06 Python
python日期相关操作实例小结
Jun 24 Python
python-tornado的接口用swagger进行包装的实例
Aug 29 Python
Python如何使用argparse模块处理命令行参数
Dec 11 Python
浅谈Python 函数式编程
Jun 20 Python
Python 中 sorted 如何自定义比较逻辑
Feb 02 Python
Flask模板引擎Jinja2使用实例
Apr 23 #Python
利用pandas向一个csv文件追加写入数据的实现示例
Apr 23 #Python
在matplotlib中改变figure的布局和大小实例
Apr 23 #Python
Python将二维列表list的数据输出(TXT,Excel)
Apr 23 #Python
Python基于DB-API操作MySQL数据库过程解析
Apr 23 #Python
详解pandas绘制矩阵散点图(scatter_matrix)的方法
Apr 23 #Python
Python matplotlib实时画图案例
Apr 23 #Python
You might like
PHP网站提速三大“软”招
2006/10/09 PHP
php实现jQuery扩展函数
2009/10/30 PHP
变量在 PHP7 内部的实现(二)
2015/12/21 PHP
php自动加载方式集合
2016/04/04 PHP
PHP实现验证码校验功能
2017/11/16 PHP
指定js可访问其它域名的cookie的方法
2007/09/18 Javascript
javascript 密码强度验证规则、打分、验证(给出前端代码,后端代码可根据强度规则翻译)
2010/05/18 Javascript
漂亮的jquery提示效果(仿腾讯弹出层)
2013/02/05 Javascript
angularJS 中$attrs方法使用指南
2015/02/09 Javascript
JS获取iframe中longdesc属性的方法
2015/04/01 Javascript
js跨域请求的5中解决方式
2015/07/02 Javascript
JavaScript 冒泡排序和选择排序的实现代码
2016/09/03 Javascript
Centos7 中安装 Node.js v4.4.4
2016/11/03 Javascript
Angular2里获取(input file)上传文件的内容的方法
2017/09/05 Javascript
原生JavaScript实现Ajax异步请求
2017/11/19 Javascript
vue项目中使用Hbuilder打包app 设置沉浸式状态栏的方法
2018/10/22 Javascript
angular4中引入echarts的方法示例
2019/01/29 Javascript
了解JavaScript表单操作和表单域
2019/05/27 Javascript
Node.js HTTP服务器中的文件、图片上传的方法
2019/09/23 Javascript
vue框架制作购物车小球动画效果实例代码
2019/09/26 Javascript
vue.js实现双击放大预览功能
2020/06/23 Javascript
[03:39]这就是刀塔,我们是冠军!燃情短片讲述我们的DOTA故事
2019/07/02 DOTA
[47:18]完美世界DOTA2联赛循环赛 IO vs FTD BO2第一场 11.05
2020/11/06 DOTA
Python scikit-learn 做线性回归的示例代码
2017/11/01 Python
python+opencv实现的简单人脸识别代码示例
2017/11/14 Python
python实现聚类算法原理
2018/02/12 Python
Python打包方法Pyinstaller的使用
2018/10/09 Python
python PyQt5/Pyside2 按钮右击菜单实例代码
2019/08/17 Python
Python DES加密实现原理及实例解析
2020/07/17 Python
如何利用python正则表达式匹配版本信息
2020/12/09 Python
加拿大在线隐形眼镜和眼镜店:VisionPros
2019/10/06 全球购物
机关办公室岗位职责
2014/04/16 职场文书
县政府办公室领导班子对照检查材料思想汇报
2014/09/28 职场文书
2015年城管执法工作总结
2015/07/23 职场文书
2016年助残日旅游活动总结
2016/04/01 职场文书
详解Html5项目适配系统深色模式方案总结
2021/04/14 HTML / CSS