使用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笔记(1) 关于我们应不应该继续学习python
Oct 24 Python
Python查找函数f(x)=0根的解决方法
May 07 Python
Python实现统计单词出现的个数
May 28 Python
用virtualenv建立多个Python独立虚拟开发环境
Jul 06 Python
python写程序统计词频的方法
Jul 29 Python
简单分析python的类变量、实例变量
Aug 23 Python
Python使用Slider组件实现调整曲线参数功能示例
Sep 06 Python
Python搭建代理IP池实现获取IP的方法
Oct 27 Python
关于Python中定制类的比较运算实例
Dec 19 Python
python3字符串输出常见面试题总结
Dec 01 Python
Python利用socket模块开发简单的端口扫描工具的实现
Jan 27 Python
python 利用openpyxl读取Excel表格中指定的行或列教程
Feb 06 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
ThinkPHP Mobile使用方法简明教程
2014/06/18 PHP
PHP堆栈调试操作简单示例
2018/06/15 PHP
初识javascript 文档碎片
2010/07/13 Javascript
jQuery Animation实现CSS3动画示例介绍
2013/08/14 Javascript
javascript 上下banner替换具体实现
2013/11/14 Javascript
JavaScript Sort 的一个错误用法示例
2015/03/20 Javascript
AngularJS基础 ng-disabled 指令详解及简单示例
2016/08/01 Javascript
实现React单页应用的方法详解
2016/08/02 Javascript
jQuery grep()方法详解及实例代码
2016/10/30 Javascript
使用DeviceOne实现微信小程序功能
2016/12/29 Javascript
vue.js将unix时间戳转换为自定义时间格式
2017/01/03 Javascript
原生JS实现几个常用DOM操作API实例
2017/01/19 Javascript
BootStrap Select清除选中的状态恢复默认状态
2017/06/20 Javascript
详解Webpack DLL用法以及功能
2017/07/11 Javascript
关于JavaScript的单双引号嵌套问题
2017/08/20 Javascript
JS数组Object.keys()方法的使用示例
2019/06/05 Javascript
Jquery动态列功能完整实例
2019/08/30 jQuery
Typescript3.9 常用新特性一览(推荐)
2020/05/14 Javascript
手把手带你搭建一个node cli的方法示例
2020/08/07 Javascript
vue实现验证用户名是否可用
2021/01/20 Vue.js
Python装饰器的函数式编程详解
2015/02/27 Python
django模型层(model)进行建表、查询与删除的基础教程
2017/11/21 Python
Pycharm 文件更改目录后,执行路径未更新的解决方法
2019/07/19 Python
Python字符串的15个基本操作(小结)
2021/02/03 Python
大学系主任推荐信范文
2013/12/24 职场文书
宿舍打麻将检讨书
2014/01/24 职场文书
教师评语大全
2014/04/28 职场文书
小班下学期评语
2014/05/04 职场文书
职业道德模范事迹材料
2014/08/24 职场文书
学习优秀共产党员先进事迹思想报告
2014/09/17 职场文书
新员工考核评语
2014/12/31 职场文书
刮痧观后感
2015/06/05 职场文书
2016高考寄语或鼓励的话语
2015/12/04 职场文书
护理专业毕业自我鉴定
2019/08/12 职场文书
Python如何快速找到多个字典中的公共键(key)
2022/04/29 Python
CSS link与@import的区别和用法解析
2023/05/07 HTML / CSS