爱气象,爱气象家园! 

气象家园

 找回密码
 立即注册

QQ登录

只需一步,快速开始

新浪微博登陆

只需一步, 快速开始

搜索
查看: 820691|回复: 5340

[秀图] GrADS '神级'坐标轴,以后不要再抱怨GrADS的坐标轴了[清风原创]

    [复制链接]

新浪微博达人勋

0
早起挑战累计收入
发表于 2012-9-22 22:33:20 | 显示全部楼层 |阅读模式

登录后查看更多精彩内容~

您需要 登录 才可以下载或查看,没有帐号?立即注册 新浪微博登陆

x
未经本人允许,此贴谢绝任何转载
    一直听到有人抱怨,GrADS的坐标轴怎么那么固定,要设置个起始间隔还不支持时间轴,要在经纬度后面加个小圆圈的度数怎么就那么难,为啥不能四周都弄上坐标轴?

    好了,你的这些抱怨将会随着你看到这个帖子而消失,下面给出这个脚本的用法介绍:

                  注意:在你display变量前需要先设置如下两个命令                       
                     'set xlpos -20'                                                                           
                          'set ylpos -20'
                                                                           
                  这样能够屏蔽GrADS自带的坐标轴,否则会出现坐标轴重叠         
  1. 请先display变量,再运行该脚本
  2. 该脚本主要实现了自定义的坐标轴显示,您可以免费使用该脚本
  3. 该脚本的用法规则如下:
  4. #axis -param1 val1 -param2 val2...
  5. 其中,-param表示需要自定义的参数类型,val表示该参数的具体设定值
  6. 参数和参数值必须成对出现,例如
  7. #axis -type b -position o -sinterval 2
  8. 上面的语句表示绘制类型是底部的x轴,刻度位置是朝外,每两个大的刻度之间显示两个小刻度线
  9. #注意:-type是必选参数
  10. 所有参数如下所示:
  11. -type :表示绘制类型,参数值有:b/l/t/r 分别表示底部,左侧,上部,右侧
  12. -label:表示是否绘制数值标签,参数值有:on/off 分别表示绘制和不绘制
  13. -position:表示刻度的位置,参数值有:o/i/m 分别表示外侧,内侧,中间
  14. -start:表示刻度 从该处开始绘制,参数值为该轴范围内的数字
  15. 当该轴为时间轴时,表示开始绘制的时次(1,2,3...)
  16. -end:表示刻度的结束位置,参数值范围同start,时间轴时表示结束的时刻(1,2,3...)                              
  17. -interval:表示刻度的间隔,隔多少值绘制一个刻度和标签
  18. 例如,当x轴表示经度110-150E,如果interval为10,默认情况下会标出110,120,130,140,150
  19. 不给定该参数时,默认情况下,会绘制5个刻度,以此确定默认间隔
  20. -sinterval:表示没两个大刻度之间要绘制几个小的刻度,不给定该参数则不绘制
  21. -size:表示刻度的长度,单位是英寸,默认为0.1
  22. -color:表示坐标轴和刻度标签的颜色,默认为1
  23. -lfont:表示坐标轴标签的字体,默认为当前环境下设置的字体
  24. -lsize:表示坐标轴标签的字体大小,默认为0.12
  25. -lthick:表示坐标轴标签字体的粗细,默认为0.3
  26. -langle:表示坐标轴标签旋转的角度,默认为不旋转
  27. -suffix:表示需要在每个坐标轴标签后面添加的文字或者符号后缀,比如用来添加度数等
  28. -asuffix:表示当坐标轴为经纬度轴时,是否自动添加E/W/N/S/EQ这种标记,默认为添加,
  29. 参数值为 on/off ,分别表示自动添加和关闭自动添加
  30. -hoffset:表示坐标轴标签在水平方向上的偏移量,单位为英寸,正负均可
  31. -voffset:表示坐标轴标签在垂直方向上的偏移量,单位为英寸,正负均可
  32. -tformat:当所绘制坐标轴为时间轴时产生作用,表示要显示的时间格式
  33. 参数值为y m d h 这四个字母的任意组合,分别表示年月日时
  34. 如:-tformat my 则会将时间轴标签显示为JAN1951这种格式
  35. -v:当绘制图形是1-D图(set gxout line等)的时候是必选参数,表示当前display的是哪个变量


来具体的看两个例子,这两个例子只是为了描述脚本的用法,所以不一定美观
一、常见的经纬度等值线图(修改了经纬度小圆点的位置-2012年10月19日)
lonlat.png

绘制该图的脚本如下:
  1. #注意:先把该脚本放到opengrads的scripts文件夹,才能不写路径调用,否则请写完整路径
  2. 'reinit'
  3. 'sdfopen F:\projects\grads\ncep\air.mon.mean.nc'
  4. 'set mpdset mres'
  5. 'set parea 1 9.5 0.5 8'
  6. 'set grads off'
  7. 'set lon 70 140'
  8. 'set lat 15 55'
  9. 'set grid off'
  10. 'set xlpos -10'
  11. 'set ylpos -10'
  12. 'd air'
  13. 'run axis.gs -type b  -position m -label on -interval 10 -sinterval 2 -size 0.2 -color 6  -langle 45 -voffset -0.1'
  14. 'run axis.gs -type L  -position o -start 20 -end 50 -suffix `3.'
  15. 'run axis.gs -type T  -label on -asuffix off -position i -interval 10 -sinterval 5 -hoffset 0.1'
  16. 'run axis.gs -type R  -label on -position o -sinterval 2  -lfont 5 -lsize 0.15 -lthick 0.8'
  17. 'printim F:\projects\grads\test\test.png  png white'
  18. ;


二、1-D图
1-D-example.png
绘制该图的脚本如下:
  1. 'reinit'
  2. 'sdfopen F:\projects\grads\ncep\air.mon.mean.nc'
  3. 'set parea 1 9.5 1 7.3'
  4. 'set grads off'
  5. 'set gxout line'
  6. 'set x 1'
  7. 'set y 1'
  8. 'set z 1'
  9. 'set t 1 10'
  10. 'set grid off'
  11. 'set xlpos -10'
  12. 'set ylpos -10'
  13. 'd air'
  14. 'run axis.gs -type b -v air -position o  -tformat my  -langle 45 -sinterval 3 -voffset -0.13 -hoffset -0.13'
  15. 'run axis.gs -type L -v air -position o -sinterval 3'
  16. 'run axis.gs -type T -v air -position o -tformat my -langle 45 -sinterval 3 -voffset 0.13 -hoffset 0.13'
  17. 'set gxout bar'
  18. 'set barbase top'
  19. 'set bargap 50'
  20. 'set ccolor 13'
  21. 'set z 15'
  22. 'd air'
  23. 'run axis.gs -type R -v air -position o -sinterval 3'
  24. 'printim F:\projects\grads\test\test1.png  png white'
  25. ;


更多图形请去我的空间相册查看:http://bbs.06climate.com/home.php?mod=space&do=album&id=61

写这个脚本真是很累人,所以设置一个回复可见,不卖贡献值了,小雨及其以上级别可以下载。
毛毛雨们不要抱怨哈,小雨都是从毛毛雨过来的,用句很俗的话说,您的支持才是我们前进的最大动力啊

(最新版:2016年5月18日)
游客,如果您要查看本帖隐藏内容请回复












评分

参与人数 52威望 +30 金钱 +356 贡献 +65 体力 +1010 收起 理由
木子李1608 + 2 赞一个!
锈梨 + 2 + 2
气象wzl + 2 很给力!
gradswang + 2 很给力!
治愈茶包 + 2 很给力!
爱娜FISH + 1 很给力!
南宫海语 + 8 + 5 很给力!
pirate999 + 10
jsl + 2 很给力!
LemonTree007 + 2 赞一个!
mukun + 1
张小菜 + 1 很给力!
pinger499 + 2
connan7 + 1 很给力!
yaotianci + 4 很给力!
东风急流 + 10 太给力
磨人的小妖精儿 + 5 很给力!
o_O_小岛 + 2 很给力!
isoasis + 2 赞一个!
时光小偷 + 2 很给力!

查看全部评分

密码修改失败请联系微信:mofangbao

新浪微博达人勋

发表于 2020-3-24 12:58:16 | 显示全部楼层
支持一下                 
密码修改失败请联系微信:mofangbao
回复 支持 1 反对 0

使用道具 举报

新浪微博达人勋

发表于 2012-9-24 18:07:35 | 显示全部楼层
楼主辛苦哇,以后grads的坐标会越来越好看
密码修改失败请联系微信:mofangbao
回复 支持 1 反对 0

使用道具 举报

新浪微博达人勋

0
早起挑战累计收入
 楼主| 发表于 2012-9-24 14:22:23 | 显示全部楼层
密码修改失败请联系微信:mofangbao
回复 支持 0 反对 1

使用道具 举报

新浪微博达人勋

发表于 2012-9-22 22:35:14 | 显示全部楼层
沙发?哈哈,今天刚请教你,这会就出来了,太给力了!
密码修改失败请联系微信:mofangbao

新浪微博达人勋

0
早起挑战累计收入
 楼主| 发表于 2012-9-22 22:38:23 | 显示全部楼层
ayzqs 发表于 2012-9-22 22:35
沙发?哈哈,今天刚请教你,这会就出来了,太给力了!

昨天下午就开始写了,刚好今天看到你的提问,就顺便给你实现了一下
密码修改失败请联系微信:mofangbao

新浪微博达人勋

 成长值: 19710
发表于 2012-9-22 22:44:30 | 显示全部楼层
大大好厉害~
密码修改失败请联系微信:mofangbao

新浪微博达人勋

发表于 2012-9-22 22:44:32 | 显示全部楼层
本帖最后由 njzqxt 于 2012-9-22 22:45 编辑

排队等候大作。
密码修改失败请联系微信:mofangbao

新浪微博达人勋

发表于 2012-9-22 23:40:08 | 显示全部楼层
{:eb317:}{:eb317:}
有了你们这些大神,我是越来越爱GRADS了,感谢感谢!
密码修改失败请联系微信:mofangbao

新浪微博达人勋

发表于 2012-9-23 00:34:10 | 显示全部楼层
这还是原来的GrADS吗
密码修改失败请联系微信:mofangbao

新浪微博达人勋

发表于 2012-9-23 08:39:25 | 显示全部楼层
{:e311_b:}vvvv5555
密码修改失败请联系微信:mofangbao

新浪微博达人勋

发表于 2012-9-23 08:55:08 | 显示全部楼层
迫不及待想要测试。。。求脚本
密码修改失败请联系微信:mofangbao

新浪微博达人勋

 成长值: 0
发表于 2012-9-23 09:22:47 | 显示全部楼层
矮油,我去
密码修改失败请联系微信:mofangbao
您需要登录后才可以回帖 登录 | 立即注册 新浪微博登陆

本版积分规则

Copyright ©2011-2014 bbs.06climate.com All Rights Reserved.  Powered by Discuz! (京ICP-10201084)

本站信息均由会员发表,不代表气象家园立场,禁止在本站发表与国家法律相抵触言论

快速回复 返回顶部 返回列表