使用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之PyUnit单元测试实例
Oct 11 Python
Python和perl实现批量对目录下电子书文件重命名的代码分享
Nov 21 Python
python实现多线程抓取知乎用户
Dec 12 Python
python使用Pycharm创建一个Django项目
Mar 05 Python
通过Pandas读取大文件的实例
Jun 07 Python
Python 一句话生成字母表的方法
Jan 02 Python
python实现ip地址查询经纬度定位详解
Aug 30 Python
Python字符编码转码之GBK,UTF8互转
Feb 09 Python
pandas的resample重采样的使用
Apr 24 Python
Python命名空间namespace及作用域原理解析
Jun 05 Python
基于python实现matlab filter函数过程详解
Jun 08 Python
图解Python中深浅copy(通俗易懂)
Sep 03 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数据库操作之基于Mysqli的数据库操作类库
2014/04/19 PHP
PHP程序员简单的开展服务治理架构操作详解(二)
2020/05/14 PHP
短信提示使用 特效
2007/01/19 Javascript
推荐一些非常不错的javascript学习资源站点
2007/08/29 Javascript
js 判断checkbox是否选中的实现代码
2010/11/23 Javascript
基于JQuery的浮动DIV显示提示信息并自动隐藏
2011/02/11 Javascript
Javascript异步编程模型Promise模式详细介绍
2014/05/08 Javascript
使用forever管理nodejs应用教程
2014/06/03 NodeJs
深入理解js中this的用法
2016/05/28 Javascript
解决jquery appaend元素中id绑定事件失效的问题
2017/09/12 jQuery
react写一个select组件的实现代码
2019/04/03 Javascript
Nodejs libuv运行原理详解
2019/08/21 NodeJs
vue滑动吸顶及锚点定位的示例代码
2020/05/10 Javascript
JS字符串补全方法padStart()和padEnd()
2020/05/27 Javascript
vue内置组件keep-alive事件动态缓存实例
2020/10/30 Javascript
[01:08:57]2014 DOTA2国际邀请赛中国区预选赛 5 23 CIS VS LGD第二场
2014/05/24 DOTA
Python下rrdtool模块的基本使用方法
2015/11/13 Python
Python读取和处理文件后缀为.sqlite的数据文件(实例讲解)
2017/06/27 Python
python实现冒泡排序算法的两种方法
2018/03/10 Python
PyQT实现多窗口切换
2018/04/20 Python
Django实现支付宝付款和微信支付的示例代码
2018/07/25 Python
在python里协程使用同步锁Lock的实例
2019/02/19 Python
python实现转圈打印矩阵
2019/03/02 Python
Pandas DataFrame数据的更改、插入新增的列和行的方法
2019/06/25 Python
Django 请求Request的具体使用方法
2019/11/11 Python
Python实现非正太分布的异常值检测方式
2019/12/09 Python
keras自定义回调函数查看训练的loss和accuracy方式
2020/05/23 Python
PyCharm设置注释字体颜色以及是否倾斜的操作
2020/09/16 Python
后勤副校长自我鉴定
2013/10/13 职场文书
会计出纳员的自我评价
2014/01/15 职场文书
大学生毕业自我鉴定范文
2014/02/03 职场文书
安全施工标语
2014/06/07 职场文书
2014年房地产工作总结范文
2014/11/19 职场文书
解放思想大讨论活动总结
2015/05/09 职场文书
2015年党小组工作总结
2015/05/26 职场文书
总结Python变量的相关知识
2021/06/28 Python