爱气象,爱气象家园! 

气象家园

 找回密码
 立即注册

QQ登录

只需一步,快速开始

新浪微博登陆

只需一步, 快速开始

搜索
查看: 573239|回复: 1509

[秀图] 增强的色标,实现GrADS颜色标尺间隔标值

  [复制链接]

新浪微博达人勋

0
早起挑战累计收入
发表于 2011-10-23 21:07:18 | 显示全部楼层 |阅读模式

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

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

x
    今天看到传说超版的自定义颜色表的帖子(点我去看),就想起前两天一个群里的朋友问,GrADS中能否实现一个色标中,在几个渐变色之间只标注一个数值,因为在默认情况下,GrADS的cbarn脚本生成的色标是这样的

testnc_interp1.png

    下面的色标是每个值都会标注出来的,而且你无法去改变它,这样就产生一个问题,当我们需要用很丰富的色彩来表示一个渐变的时候,用这个cbarn就会发现,数字非常拥挤,根本无法使用,这也大大的限制了grads在色彩上的表示。看ncl的图就可以发现,ncl的色彩是非常丰富的,而且可以一个渐变色仅标注出一个值,好了,今天忙了半天的脚本,要实现的也就是这个功能啦!

    具体的实现原理不多说啦,相信更多的朋友还是希望知道如何去使用,先给出一张使用增强版的colorbar做出来的图(由于时间限制,我没有设置很丰富的色彩,如果你使用gseditor的彩虹色管理器的话,设置丰富的色彩是很easy的,改天上例子):

testnc_interp2.png

    应一些朋友的要求,给出ncl官网的色标地址:http://www.ncl.ucar.edu/Document ... table_gallery.shtml

    上面这张图中我设置的间隔是2,也就是隔一个color标注一个数字,这样当color很多的时候,就不会拥挤啦,当然也可以用来实现多个渐变色的标注啦。我给这个脚本取的名字叫做:cbarn_interp.gs,在附件中给出,下面是简单的使用方法:

     run cbarn_interp interp sf vert xmid ymid
*        interp  -表示需要的间隔,如果值小于等于0,则不标注文字,默认为1,(your interp,<=0means do not plot color key;1 in default)
* sf   - 标尺的大小,值从0-1变化,全尺寸为1,以此类推,默认为1.
* vert - 0表示水平,1表示垂直,未含此参数则默认选择为垂直,若垂直无法放置,则为水平
* xmid - 标尺的x中心坐标,默认自动选择
* ymid - 标尺的y中心坐标,默认自动选择
*        如果不包含任何参数,将按照上面的默认算法

不标注文字的时候又是什么样的呢,如下图所示:
testnc_interp0.png

    这次也来个回复可见吧,看看有多人需要啦,如果你回复的内容被认为是无意义的灌水,可能会被禁止账号的哦!版主们请带好头啊。
    同时,明天就要离开论坛一周了,有点舍不得,回复送积分吧,每个人可以获得一次,每次10个金钱,前100楼有效(挣的钱花的好快哈,哈哈)。

(53楼有惊喜)
又增加了一种色标的形式,平角的色标,功能和这个色标相同,请参考这个帖子:http://bbs.06climate.com/forum.php?mod=viewthread&tid=4587
===============================
附件在此:
游客,如果您要查看本帖隐藏内容请回复

评分

参与人数 15威望 +9 金钱 +103 贡献 +23 收起 理由
WANGYOULIAN + 1 很给力!
aieryiling + 1 很给力!
lllllys + 1 很给力!
我很快乐 + 1 很给力!
Aires + 22 + 8 很给力!
蓝莲花 + 2 很给力!
小草 + 2 很给力!
meehooqq + 2 很给力!
wode_q_x + 6 + 1 赞一个!
nx花儿-LJQ + 2 赞一个!
baiduwenku + 10 + 2 很给力!
liantai4567 + 10 + 2 很给力!
传说中的谁 + 3 + 16 + 4
善人/jw + 2 + 10 + 2
尽头的尽头 + 4 + 17 + 4

查看全部评分

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

新浪微博达人勋

发表于 2019-10-14 20:23:44 | 显示全部楼层
本帖最后由 chzlchzl2 于 2019-10-14 20:28 编辑

主要对该段标黄处进行了修改,对于之前发现的在画图时候会跳过一定的数值的问题已有所解决
*   Put numbers under each segment of the color key
    if (num <= cnum & num=cinterp )
        if (vert)
          xp=xr+stroff
          if(interp!=0)
            'draw string 'xp' 'yt' 'num
          endif
        else
          yp=yb-stroff
          if(interp!=0)
             'draw string 'xr' 'yp' 'num
          endif
        endif
      cinterp=num+interp
    endif


微信截图_20191014202247.png

cbar_interp.gs

4.48 KB, 下载次数: 38

cbarn_interp.gs

5.69 KB, 下载次数: 47

评分

参与人数 1金钱 +15 贡献 +5 收起 理由
mofangbao + 15 + 5

查看全部评分

密码修改失败请联系微信:mofangbao
回复 支持 1 反对 0

使用道具 举报

新浪微博达人勋

0
早起挑战累计收入
 楼主| 发表于 2011-10-23 21:21:28 | 显示全部楼层

今天看完原来的脚本才发现,还有很多东西可以我们自己去改变,类似ncl的颜色完全可以调制出来,等回来我再配几个复杂的color table出来,哈哈,今天兰溪告诉我了ncl的图例的网址,我发现那些图例真不错,准备弄到grads 中来
密码修改失败请联系微信:mofangbao

新浪微博达人勋

发表于 2011-10-23 21:17:50 | 显示全部楼层
接着说。grads自带的gs,有时间有兴趣的童鞋真的可以好好研究的,可以学到很多东西。学得好的可以像清风这样搞些二次开发,造福像笨笨这样的菜鸟

点评

继续装  发表于 2011-10-23 21:21
密码修改失败请联系微信:mofangbao

新浪微博达人勋

发表于 2011-10-23 21:08:12 | 显示全部楼层

回帖奖励 +10 金钱

本帖最后由 传说中的谁 于 2011-10-23 21:13 编辑

沙发非笨笨莫属这个很了不起的,以前都是自己定制颜色然后应用,虽然可以很大程度上美化图形,但色标的问题一直困扰着笨笨。这下好了,感谢清风,可以让grads的色标更加丰富多彩,最重要的是增加了可调参数,让用户轻易操作。感谢清风!这是一个了不起的二次开发。
密码修改失败请联系微信:mofangbao

新浪微博达人勋

发表于 2011-10-23 21:11:32 | 显示全部楼层

回帖奖励 +10 金钱

笨笨版的升级版,学习下,原来这么丰富的内容啊
密码修改失败请联系微信:mofangbao

新浪微博达人勋

发表于 2011-10-23 21:16:35 | 显示全部楼层

回帖奖励 +10 金钱

来支持清风啦,我还等着我们的大作好好学习一下呢,哇咔咔

ps 清风一路顺风,一切顺利哦
密码修改失败请联系微信:mofangbao

新浪微博达人勋

发表于 2011-10-23 21:16:38 | 显示全部楼层

回帖奖励 +10 金钱

清风就是给力啊{:eb502:}
密码修改失败请联系微信:mofangbao

新浪微博达人勋

发表于 2011-10-23 21:25:02 | 显示全部楼层

回帖奖励 +10 金钱

貌似很不错的,呵呵,学习学习!
密码修改失败请联系微信:mofangbao

新浪微博达人勋

 成长值: 19710
发表于 2011-10-23 21:26:17 | 显示全部楼层

回帖奖励 +10 金钱

我也要学习学习!
密码修改失败请联系微信:mofangbao

新浪微博达人勋

发表于 2011-10-23 21:26:27 | 显示全部楼层

回帖奖励 +10 金钱

本帖最后由 奕奕生辉 于 2011-10-23 21:39 编辑

感谢楼主,好好学习

点评

请不要纯表情回复,重新编辑一下吧  发表于 2011-10-23 21:36
密码修改失败请联系微信:mofangbao
您需要登录后才可以回帖 登录 | 立即注册 新浪微博登陆

本版积分规则

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

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

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