使用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中set常用操作汇总
Jun 30 Python
Python新手入门最容易犯的错误总结
Apr 24 Python
Django跨域请求问题的解决方法示例
Jun 16 Python
Python将多个list合并为1个list的方法
Jun 27 Python
基于数据归一化以及Python实现方式
Jul 11 Python
python编写微信公众号首图思路详解
Dec 13 Python
python中的逆序遍历实例
Dec 25 Python
Python脚本实现监听服务器的思路代码详解
May 28 Python
Python+OpenCV检测灯光亮点的实现方法
Nov 02 Python
selenium+python自动化78-autoit参数化与批量上传功能的实现
Mar 04 Python
Python Django获取URL中的数据详解
Nov 01 Python
Pygame Rect区域位置的使用(图文)
Nov 17 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+mysql实现无限级分类 | 树型显示分类关系
2006/11/19 PHP
php数组的一些常见操作汇总
2011/07/17 PHP
两款万能的php分页类
2015/11/12 PHP
浅谈PHP值mysql操作类
2016/06/29 PHP
PHP实现的随机红包算法示例
2017/08/14 PHP
带左右箭头图片轮播的JS代码
2013/12/18 Javascript
jQuery操作JSON的CRUD用法实例
2015/02/25 Javascript
5个最顶级jQuery图表类库插件【jquery插件库】
2016/05/05 Javascript
jquery实现拖动效果
2016/08/10 Javascript
JavaScript 闭包详细介绍
2016/09/28 Javascript
angular2+nodejs实现图片上传功能
2017/03/27 NodeJs
深入理解jquery的$.extend()、$.fn和$.fn.extend()
2017/07/08 jQuery
简述jQuery Easyui一些用法
2017/08/01 jQuery
基于input动态模糊查询的实现方法
2017/12/12 Javascript
Element UI 自定义正则表达式验证方法
2018/09/04 Javascript
利用jqgrid实现上移下移单元格功能
2018/11/07 Javascript
详解axios中封装使用、拦截特定请求、判断所有请求加载完毕)
2019/04/09 Javascript
使用vue-cli4.0快速搭建一个项目的方法步骤
2019/12/04 Javascript
详解ES6实现类的私有变量的几种写法
2021/02/10 Javascript
Python中的__new__与__init__魔术方法理解笔记
2014/11/08 Python
Python对列表去重的多种方法(四种方法)
2017/12/05 Python
centos7中安装python3.6.4的教程
2019/12/11 Python
Python实现隐马尔可夫模型的前向后向算法的示例代码
2019/12/31 Python
python实现贪吃蛇双人大战
2020/04/18 Python
Python中Selenium库使用教程详解
2020/07/23 Python
Python析构函数__del__定义原理解析
2020/11/20 Python
Python读写锁实现实现代码解析
2020/11/28 Python
M1芯片安装python3.9.1的实现
2021/02/02 Python
纯CSS3实现运行时钟的示例代码
2021/01/25 HTML / CSS
VICHY薇姿英国官网:全球专业敏感肌护肤领先品牌
2017/07/04 全球购物
美国Curacao百货连锁店网站:iCuracao.com
2019/07/20 全球购物
英文翻译的自我评价语句
2013/10/04 职场文书
《富饶的西沙群岛》教学反思
2016/02/16 职场文书
校园文化艺术节开幕词
2016/03/04 职场文书
HTML+VUE分页实现炫酷物联网大屏功能
2021/05/27 Vue.js
python 中yaml文件用法大全
2021/07/04 Python