使用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 相关文章推荐
Django objects.all()、objects.get()与objects.filter()之间的区别介绍
Jun 12 Python
Python使用文件锁实现进程间同步功能【基于fcntl模块】
Oct 16 Python
学习Python3 Dlib19.7进行人脸面部识别
Jan 24 Python
python抓取网页中链接的静态图片
Jan 29 Python
pandas 取出表中一列数据所有的值并转换为array类型的方法
Apr 11 Python
Python实现的NN神经网络算法完整示例
Jun 19 Python
django框架模型层功能、组成与用法分析
Jul 30 Python
扩展Django admin的list_filter()可使用范围方法
Aug 21 Python
在Tensorflow中实现梯度下降法更新参数值
Jan 23 Python
浅谈numpy中函数resize与reshape,ravel与flatten的区别
Jun 18 Python
python实现简单遗传算法
Sep 18 Python
python中altair可视化库实例用法
Jan 26 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 默默经典版本
2009/08/04 PHP
twig里使用js变量的方法
2016/02/05 PHP
php+jQuery+Ajax简单实现页面异步刷新
2016/08/08 PHP
php 函数中静态变量使用的问题实例分析
2020/03/05 PHP
URL地址中的#符号使用说明
2011/02/12 Javascript
jquery实现table鼠标经过变色代码
2013/09/25 Javascript
在页面加载完成后通过jquery给多个span赋值
2014/05/21 Javascript
jQuery form插件的使用之处理server返回的JSON, XML,HTML数据
2016/01/26 Javascript
【经验总结】编写JavaScript代码时应遵循的14条规律
2016/06/20 Javascript
js 实现一些跨浏览器的事件方法详解及实例
2016/10/27 Javascript
JavaScript函数基础详解
2017/02/03 Javascript
Vue声明式渲染详解
2017/05/17 Javascript
JS实现图片居中悬浮效果
2017/12/25 Javascript
react-router browserHistory刷新页面404问题解决方法
2017/12/29 Javascript
微信小程序实现登录遮罩效果
2018/11/01 Javascript
微信小程序实现点击图片旋转180度并且弹出下拉列表
2018/11/27 Javascript
JavaScript常用工具函数汇总(浏览器环境)
2020/09/17 Javascript
Vue中引入svg图标的两种方式
2021/01/14 Vue.js
[59:32]Liquid vs Fnatic 2019国际邀请赛淘汰赛败者组BO1 8.20.mp4
2020/07/19 DOTA
使用Python生成随机密码的示例分享
2016/02/18 Python
Python简单实现TCP包发送十六进制数据的方法
2016/04/16 Python
利用python获取某年中每个月的第一天和最后一天
2016/12/15 Python
Django中cookie的基本使用方法示例
2018/02/03 Python
解决pandas.DataFrame.fillna 填充Nan失败的问题
2018/11/06 Python
Python实现的排列组合、破解密码算法示例
2019/04/12 Python
python实现图片转字符小工具
2019/04/30 Python
python 批量解压压缩文件的实例代码
2019/06/27 Python
python爬虫爬取幽默笑话网站
2019/10/24 Python
TensorFlow打印输出tensor的值
2020/04/19 Python
使用CSS3来代替JS实现交互
2017/08/10 HTML / CSS
博柏利美国官方网站:Burberry美国
2020/11/19 全球购物
医学类导师推荐信范文
2013/11/19 职场文书
会计专业大学生职业生涯规划范文
2014/01/11 职场文书
小学生自我评价范文
2014/01/25 职场文书
项目经理任命书范本
2014/06/05 职场文书
小学感恩主题班会
2015/08/12 职场文书