使用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爬虫入门教程之糗百图片爬虫代码分享
Sep 02 Python
浅谈插入排序算法在Python程序中的实现及简单改进
May 04 Python
Python使用post及get方式提交数据的实例
Jan 24 Python
python之生产者消费者模型实现详解
Jul 27 Python
浅谈python3中input输入的使用
Aug 02 Python
Django配置MySQL数据库的完整步骤
Sep 07 Python
python getpass模块用法及实例详解
Oct 07 Python
深入浅析python的第三方库pandas
Feb 13 Python
使用Pyhton 分析酒店针孔摄像头
Mar 04 Python
Python环境下安装PyGame和PyOpenGL的方法
Mar 25 Python
Python数据分析库pandas高级接口dt的使用详解
Dec 11 Python
Python3使用tesserocr识别字母数字验证码的实现
Jan 29 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
第五节 克隆 [5]
2006/10/09 PHP
PHP中通过ADO调用Access数据库的方法测试不通过
2006/12/31 PHP
使用apache模块rewrite_module (转)
2007/02/14 PHP
PHP JS Ip地址及域名格式检测代码
2013/09/27 PHP
PHP+Mysql+Ajax+JS实现省市区三级联动
2014/05/23 PHP
浅谈php命令行用法
2015/02/04 PHP
PHP实现支持SSL连接的SMTP邮件发送类
2015/03/05 PHP
PHP多线程模拟实现秒杀抢单
2018/02/07 PHP
javascript eval函数深入认识
2009/02/21 Javascript
jQuery团购倒计时特效实现方法
2015/05/07 Javascript
基于javascript实现右下角浮动广告效果
2016/01/08 Javascript
BootStrap实现轮播图效果(收藏)
2016/12/30 Javascript
Vue.js实现文章评论和回复评论功能
2020/05/30 Javascript
浅谈Postman解决token传参的问题
2018/03/31 Javascript
react脚手架如何配置less和ant按需加载的方法步骤
2018/11/28 Javascript
three.js搭建室内场景教程
2018/12/30 Javascript
Vue事件处理原理及过程详解
2020/03/11 Javascript
[52:29]DOTA2上海特级锦标赛主赛事日 - 2 胜者组第一轮#3Secret VS OG第三局
2016/03/03 DOTA
[45:06]完美世界DOTA2联赛PWL S2 Magma vs InkIce 第二场 11.28
2020/12/02 DOTA
python异步编程 使用yield from过程解析
2019/09/25 Python
python实现画出e指数函数的图像
2019/11/21 Python
Python数据可视化处理库PyEcharts柱状图,饼图,线性图,词云图常用实例详解
2020/02/10 Python
Python可变对象与不可变对象原理解析
2020/02/25 Python
给keras层命名,并提取中间层输出值,保存到文档的实例
2020/05/23 Python
pytorch VGG11识别cifar10数据集(训练+预测单张输入图片操作)
2020/06/24 Python
利用CSS3的flexbox实现水平垂直居中与三列等高布局
2016/09/12 HTML / CSS
凯特·丝蓓英国官网:Kate Spade英国
2016/11/07 全球购物
关于打架的检讨书
2014/01/17 职场文书
校园安全检查制度
2014/02/03 职场文书
上课看小说检讨书
2014/02/22 职场文书
洗车工岗位职责
2014/03/15 职场文书
中国梦主题教育活动总结
2014/05/05 职场文书
服务标语口号
2014/07/01 职场文书
司机岗位职责说明书
2014/07/29 职场文书
中学生旷课检讨书2篇
2014/10/09 职场文书
用 Python 元类的特性实现 ORM 框架
2021/05/19 Python