使用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的lambda语句声明匿名函数的用法
Jul 01 Python
Python处理json字符串转化为字典的简单实现
Jul 07 Python
Python科学计算之NumPy入门教程
Jan 15 Python
python学习基础之循环import及import过程
Apr 22 Python
浅谈python脚本设置运行参数的方法
Dec 03 Python
解决Python3.5+OpenCV3.2读取图像的问题
Dec 05 Python
python爬虫超时的处理的实例
Dec 19 Python
python中for循环把字符串或者字典添加到列表的方法
Jul 20 Python
在python中用url_for构造URL的方法
Jul 25 Python
pandas 对group进行聚合的例子
Dec 27 Python
关于初始种子自动选取的区域生长实例(python+opencv)
Jan 16 Python
python实现ftp文件传输系统(案例分析)
Mar 20 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
Zend引擎的发展 [15]
2006/10/09 PHP
wordpress自定义url参数实现路由功能的代码示例
2013/11/28 PHP
PHP中把stdClass Object转array的几个方法
2014/05/08 PHP
php rsa 加密,解密,签名,验签详解
2016/12/06 PHP
PHP基于Redis消息队列实现发布微博的方法
2017/05/03 PHP
浅析javascript闭包 实例分析
2010/12/25 Javascript
Ajax同步与异步传输的示例代码
2013/11/21 Javascript
为jQuery添加Webkit的触摸的方法分享
2014/02/02 Javascript
JavaScript中的全局对象介绍
2015/01/01 Javascript
javascript运动详解
2015/07/06 Javascript
Jquery 1.9.1源码分析系列(十二)之筛选操作
2015/12/02 Javascript
浅谈jQuery 选择器和dom操作
2016/06/07 Javascript
清除输入框内的空格
2016/12/21 Javascript
mui上拉加载功能实例详解
2017/04/13 Javascript
详解使用vuex进行菜单管理
2017/12/21 Javascript
React styled-components设置组件属性的方法
2018/08/07 Javascript
解决axios会发送两次请求,有个OPTIONS请求的问题
2018/10/25 Javascript
vue props 一次传多个值实例
2020/07/22 Javascript
Python连接mssql数据库编码问题解决方法
2015/01/01 Python
python中随机函数random用法实例
2015/04/30 Python
python3实现UDP协议的服务器和客户端
2017/06/14 Python
Python数据结构与算法之常见的分配排序法示例【桶排序与基数排序】
2017/12/15 Python
python如何读写csv数据
2018/03/21 Python
python3+pyqt5+itchat微信定时发送消息的方法
2019/02/20 Python
Python使用type关键字创建类步骤详解
2019/07/23 Python
python中二分查找法的实现方法
2020/12/06 Python
在线购买廉价折扣书籍和小说:BookOutlet.com
2018/02/19 全球购物
美国购买体育赛事门票网站:TicketCity
2019/03/06 全球购物
装潢设计实习自我鉴定
2013/09/19 职场文书
电子商务专业自我鉴定
2013/12/18 职场文书
个人求职信范例
2014/01/29 职场文书
校本教研活动总结
2014/07/01 职场文书
大二学生自我检讨书
2014/10/23 职场文书
2016学雷锋优秀志愿者事迹材料
2016/02/25 职场文书
JS如何实现基于websocket的多端桥接平台
2021/05/14 Javascript
windows server2016安装oracle 11g的图文教程
2022/07/15 Servers