使用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实现按行切分文本文件的方法
Apr 18 Python
浅谈python中字典append 到list 后值的改变问题
May 04 Python
利用Anaconda简单安装scrapy框架的方法
Jun 13 Python
Python 确定多项式拟合/回归的阶数实例
Dec 29 Python
Python3 单行多行万能正则匹配方法
Jan 07 Python
python分割一个文本为多个文本的方法
Jul 22 Python
python try except返回异常的信息字符串代码实例
Aug 15 Python
Python实现代码统计工具
Sep 19 Python
python getopt模块使用实例解析
Dec 18 Python
python import 上级目录的导入
Nov 03 Python
opencv实现图像平移效果
Mar 24 Python
Python实现socket库网络通信套接字
Jun 04 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数组函数序列之array_intersect() 返回两个或多个数组的交集数组
2011/11/10 PHP
php绘制一个矩形的方法
2015/01/24 PHP
php实现在服务器上创建目录的方法
2015/03/16 PHP
php 在字符串指定位置插入新字符的简单实现
2016/06/28 PHP
php版微信自动获取收货地址api用法示例
2016/09/22 PHP
thinkPHP批量删除的实现方法分析
2016/11/09 PHP
PHP获取文件扩展名的方法实例总结
2017/06/10 PHP
JavaScript XML实现两级级联下拉列表
2008/11/10 Javascript
基于jquery的内容循环滚动小模块(仿新浪微博未登录首页滚动微博显示)
2011/03/28 Javascript
16个最流行的JavaScript框架[推荐]
2011/05/29 Javascript
将Datatable转化成json发送前台实现思路
2013/09/06 Javascript
js验证身份证号有效性并提示对应信息
2015/10/19 Javascript
7个去伪存真的JavaScript面试题
2016/01/07 Javascript
基于jQuery实现滚动切换效果
2016/12/02 Javascript
JavaScript中捕获/阻止捕获、冒泡/阻止冒泡方法
2016/12/07 Javascript
浅谈原生JS实现jQuery的animate()动画示例
2017/03/08 Javascript
基于three.js编写的一个项目类示例代码
2018/01/05 Javascript
JavaScript实现多重继承的方法分析
2018/01/09 Javascript
从零开始搭建一个react项目开发
2018/02/09 Javascript
Vue2.0点击切换类名改变样式的方法
2018/08/22 Javascript
JsonServer安装及启动过程图解
2020/02/28 Javascript
Vue实现boradcast和dispatch的示例
2020/11/13 Javascript
[02:03]《现实生活中的DOTA2》—林书豪&DOTA2职业选手出演短片
2015/08/18 DOTA
跟老齐学Python之有点简约的元组
2014/09/24 Python
Python Web框架Flask中使用新浪SAE云存储实例
2015/02/08 Python
python list删除元素时要注意的坑点分享
2018/04/18 Python
python使用pymongo操作mongo的完整步骤
2019/04/13 Python
python os模块常用的29种方法使用详解
2020/06/02 Python
CSS3动画和HTML5新特性详解
2020/08/31 HTML / CSS
有关HTML5 Video对象的ontimeupdate事件(Chrome上无效)的问题
2013/07/19 HTML / CSS
药品质量检测应届生求职信
2013/11/14 职场文书
招聘与培训专员岗位职责
2014/01/30 职场文书
工会优秀工作者事迹
2014/08/17 职场文书
思品教学工作总结
2015/08/10 职场文书
《刺客之王:C罗全景传记》:时代从来不会亏待手艺人
2019/11/28 职场文书
mysql连接查询中and与where的区别浅析
2021/07/01 MySQL