使用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之字典,你还记得吗?
Sep 20 Python
python中实现精确的浮点数运算详解
Nov 02 Python
利用pandas读取中文数据集的方法
Jul 25 Python
python实现简单flappy bird
Dec 24 Python
python实现本地批量ping多个IP的方法示例
Aug 07 Python
Python图片的横坐标汉字实例
Dec 04 Python
PyQt5多线程刷新界面防假死示例
Dec 13 Python
Spring http服务远程调用实现过程解析
Jun 11 Python
关于Theano和Tensorflow多GPU使用问题
Jun 19 Python
如何通过安装HomeBrew来安装Python3
Dec 23 Python
利用Python过滤相似文本的简单方法示例
Feb 03 Python
Python面向对象之成员相关知识总结
Jun 24 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
支持php4、php5的mysql数据库操作类
2008/01/10 PHP
PHP版自动生成文章摘要
2008/07/23 PHP
PHP中使用数组指针函数操作数组示例
2014/11/19 PHP
php调用mysql存储过程实例分析
2014/12/29 PHP
PHP中捕获超时事件的方法实例
2015/02/12 PHP
php计算两个文件相对路径的方法
2015/03/14 PHP
laravel框架实现去掉URL中index.php的方法
2019/10/12 PHP
清除网页历史记录,屏蔽后退按钮!
2008/12/22 Javascript
JQuery中对Select的option项的添加、删除、取值
2013/08/25 Javascript
JavaScript使用DeviceOne开发实战(四)仿优酷视频应用
2015/12/02 Javascript
jQuery基于扩展简单实现倒计时功能的方法
2016/05/14 Javascript
Bootstrap轮播插件简单使用方法介绍
2016/06/21 Javascript
Bootstrap3多级下拉菜单
2017/02/24 Javascript
JS 组件系列之Bootstrap Table 冻结列功能IE浏览器兼容性问题解决方案
2017/06/30 Javascript
angular中实现li或者某个元素点击变色的两种方法
2017/07/27 Javascript
js传递数组参数到后台controller的方法
2018/03/29 Javascript
bootstrap select2插件用ajax来获取和显示数据的实例
2018/08/09 Javascript
jquery实现的放大镜效果示例
2020/02/24 jQuery
解决vue单页面 回退页面 keeplive 缓存问题
2020/07/22 Javascript
[02:32]DOTA2英雄基础教程 美杜莎
2014/01/07 DOTA
[10:05]DOTA2-DPC中国联赛 正赛 iG vs PSG.LGD 选手采访
2021/03/11 DOTA
python中 chr unichr ord函数的实例详解
2017/08/06 Python
dpn网络的pytorch实现方式
2020/01/14 Python
使用Keras画神经网络准确性图教程
2020/06/15 Python
python实现猜数游戏(保存游戏记录)
2020/06/22 Python
Python 转移文件至云对象存储的方法
2021/02/07 Python
CSS3中动画属性transform、transition和animation属性的区别
2016/09/25 HTML / CSS
英国屋顶用品和材料超市:Roofing Supplies UK
2019/08/24 全球购物
英国网上自行车商店:Tredz Bikes
2019/10/29 全球购物
酒店人事专员岗位职责
2013/12/19 职场文书
审计专业自荐信范文
2014/04/21 职场文书
教师教育教学随笔
2015/08/15 职场文书
导游词之无锡梅园
2019/11/28 职场文书
redis不能访问本机真实ip地址的解决方案
2021/07/07 Redis
Python写情书? 10行代码展示如何把情书写在她的照片里
2022/04/21 Python
Python通用验证码识别OCR库ddddocr的安装使用教程
2022/07/07 Python