IDL直接图形法绘制图例的两种方法 您所在的位置:网站首页 怎么绘制矢量图片的方法图例 IDL直接图形法绘制图例的两种方法

IDL直接图形法绘制图例的两种方法

2023-05-26 10:33| 来源: 网络整理| 查看: 265

IDL直接图形法绘制图例的两种方法 发布时间: 2014-01-14 所属分类: IDL修炼秘籍 文章标签: 图例VECTOR 当前位置: 麻辣GIS » GIS笔记 » IDL修炼秘籍 » IDL直接图形法绘制图例的两种方法

在使用直接法绘制矢量图的时候,需要绘制相关图例。关于直接图形法绘制矢量图,我写了两篇文章,你可以看这里:IDL遥感应用入门(9):改进利用QuikScat数据绘制风速矢量图这是对教程5的更新升级,利用本文的方法可以绘制出图例,这是改进之后的方法,这里将两种方法列举出来,供大家学习对比只用。

方法一 这种方法的思想是,绘制完矢量图之后,重新绘制图例。示例代码如下: u=ws*sin(dir) v=ws*cos(dir) x=findgen(1440)*0.25 y=findgen(720)*0.25-90 x=congrid(x,180) y=congrid(y,90) ;图例数组 uscale=fltarr(180,90) uscale(50,70)=10 vscale=fltarr(180,90) window,data,xsize=1440,ysize=720 name=strarr(7) name[data]=string(20060700+data+1) map_set,0,180,0,title=name(data),/continents,/grid,/label velovect,u,v,x,y,missing=250*0.2,/overplot velovect,uscale,vscale,x,y,color='FF0000'xl,/overplot 从示例代码中可以看出,这里绘制了两次velovect。 方法二 方法一中给了我们一个新的思考,方法一采用的绘制两次vector的方法实现了图例的绘制,那能不能把两次合并成一次呢?当然可以,可以发现方法一是把(50,70)这个点作为图例,同理,我们可以把原来的uv数组对应的(50,70)直接赋值即可。示例代码如下: ;构建vector函数所需参数 u=ws*sin(dir) v=ws*cos(dir) x=findgen(1440)*0.25 y=findgen(720)*0.25-90 x=congrid(x,180) y=congrid(y,90)

;构建图例 u(50,70)=30 v(50,70)=0

;出图显示 window,data,xsize=1440,ysize=720 name=strarr(7) name[data]=string(20060700+data+1) map_set,0,180,0,title=name(data),/continents,/grid,/label velovect,u,v,x,y,missing=250*0.2,/overplot

其实方法一和方法二都是IDL遥感应用入门(9):改进利用QuikScat数据绘制风速矢量图一文中的代码,下面是全部代码,代码同样来自@杨铭伦大神。 pro yangminglun5 filename=file_search('D:\3','*.gz') device,decomposed=1 !p.color=0 !p.background='FFFFFF'xl for data=0,0 do begin a=bytarr(1440,720,3) openr,lun,filename[data],/compress,/get_lun readu,lun,a free_lun,lun ws=congrid(a(*,*,0),180,90)*0.2 ;print,ws dir=congrid(a(*,*,1),180,90)*1.5/180*!pi u=ws*sin(dir) v=ws*cos(dir) x=findgen(1440)*0.25 y=findgen(720)*0.25-90 x=congrid(x,180) y=congrid(y,90) ;图例数组 uscale=fltarr(180,90) uscale(50,70)=30 vscale=fltarr(180,90) window,data,xsize=1440,ysize=720 name=strarr(7) name[data]=string(20060700+data+1) map_set,0,180,0,title=name(data),/continents,/grid,/label velovect,u,v,x,y,missing=250*0.2,/overplot velovect,uscale,vscale,x,y,color='FF0000'xl,/overplot xyouts,103,49,'10m/s',color='FF0000'xl endfor end 感兴趣的可以用这个代码替换教程9的代码,可以对这两种方法做一个对比。 相关阅读 VC++开发GIS系统(99)补充知识vector删除元素 VC++开发GIS系统(99)补充知识vector删除元素 2016-01-03 关于IDL直接图形法的VELOVECT函数 关于IDL直接图形法的VELOVECT函数 2014-01-14 关于IDL对象图形法的VECTOR函数 关于IDL对象图形法的VECTOR函数 2014-01-08 IDL使用XYOUTS生成图例 IDL使用XYOUTS生成图例 2013-11-01 QGIS中文操作手册(4-2)加载数字高程模型数据 QGIS中文操作手册(4-2)加载数字高程模型数据 2017-08-20 GPS原理应用(8-19)网平差-无约束平差 GPS原理应用(8-19)网平差-无约束平差 2019-03-08 麻辣GIS-Sailor

作者:Sailor

GIS爱好者,学GIS,更爱玩GIS。 B站关注 加入QQ群 声明

1.本文所分享的所有需要用户下载使用的内容(包括但不限于软件、数据、图片)来自于网络或者麻辣GIS粉丝自行分享,版权归该下载资源的合法拥有者所有,如有侵权请第一时间联系本站删除。

2.下载内容仅限个人学习使用,请切勿用作商用等其他用途,否则后果自负。

手机阅读 公众号关注 微信打赏 手机阅读 麻辣GIS微信公众号关注 最新GIS干货 赞助麻辣GIS 谢谢老板!! 上一篇:关于IDL对象图形法的VECTOR函数 下一篇:IDL中两种绘图方式:直接图形法 和 对象图形法


【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有