爱气象,爱气象家园! 

气象家园

 找回密码
 立即注册

QQ登录

只需一步,快速开始

新浪微博登陆

只需一步, 快速开始

搜索
查看: 7043|回复: 4

NCL 如何在t检验显著区域画斜线

[复制链接]

新浪微博达人勋

发表于 2015-10-10 20:18:42 | 显示全部楼层 |阅读模式
NCL
系统平台: cygwin
问题截图:
问题概况: 我计算某年高度场较三十年平均场显著异常,所以想在该年高度异常的显著区域叠加斜线,现在我算出了t检验的概率prob,通过90%显著性检验即画出prob<0.1或prob>0.9的区域,我使用了ShadeLtGtContour函数,可是好像没有作用,求帮助看下是不是代码哪里出了问题,我是新手请见谅
我看过提问的智慧: 看过
自己思考时长(天): 2

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

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

x
本帖最后由 我想养猫 于 2015-10-11 09:54 编辑

代码如下:
load "$NCARG_ROOT/lib/ncarg/nclscripts/csm/gsn_code.ncl"
load "$NCARG_ROOT/lib/ncarg/nclscripts/csm/gsn_csm.ncl"
load "$NCARG_ROOT/lib/ncarg/nclscripts/csm/contributed.ncl"
load "$NCARG_ROOT/lib/ncarg/nclscripts/csm/shea_util.ncl"
begin
;!!!!!!!!!!!!!!!!!!!!!!!计算部分(跳过)!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!

;!!!!!!!!!!!!!!!!!!!!!!!!!!!!画图部分!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
wks = gsn_open_wks("pdf","t5_2")
res1=True               
res1@cnFillOn=True
res1@cnLinesOn=True
plot1=gsn_csm_contour_map(wks,prob(5,:,:),res1)
plot1=ShadeLtGtContour(plot1,0.1,8,0.9,8)
draw(plot1)
end

我查了官网,上面的代码是(传送门http://www.ncl.ucar.edu/Applications/Scripts/coneff_7.ncl):
load "$NCARG_ROOT/lib/ncarg/nclscripts/csm/gsn_code.ncl"
load "$NCARG_ROOT/lib/ncarg/nclscripts/csm/gsn_csm.ncl"
load "$NCARG_ROOT/lib/ncarg/nclscripts/csm/contributed.ncl"
load "$NCARG_ROOT/lib/ncarg/nclscripts/csm/shea_util.ncl"
wks   = gsn_open_wks ("ps", "coneff" )           ; open workstation
res   = True                                     ; plot mods desired
res@gsnDraw         = False                      ; do not draw   
res@gsnFrame        = False                      ; do not advance frame
res@cnLevelSpacingF = 4.0                        ; contour level spacing
res@cnInfoLabelOn   = False                      ; turn off contour label
plot                = new(4,graphic)             ; create a graphical array

; plot 3  
res@gsnCenterString="< 0 shaded AND > 24 shaded"  
plot(2)  = gsn_csm_pres_hgt(wks, uzon, res )   
plot(2)  = ShadeLtGtContour(plot(2),0.1,7,25.5,8)
我模仿着写了代码,可是我画不示例那种斜线图,而且当我定义了 res@gsnDraw= False; res@gsnFrame = False 后出图是一张白纸。

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

新浪微博达人勋

 楼主| 发表于 2015-10-10 20:20:31 | 显示全部楼层
只需要看下画图部分就好啦 谢谢各位大大
密码修改失败请联系微信:mofangbao

新浪微博达人勋

 楼主| 发表于 2015-10-11 19:52:24 | 显示全部楼层
  Duang~Duang~Duang~
  在@klosefeng(等级太低了艾特不出来)小伙伴的合作下终于有点明白啦
  代码加上:res@cnLevelSpacingF = 0.05,就可以了,否则间隔会是随机数。
大家有兴趣可以用print(res1@cnLevelSpacingF)验证一下,我这里是-2147483647这样。根据官网的解释"Starting with the first contour less than ltvalue, all areas less than that first contour will be shaded with fill pattern ltpattern”,也就是说从小于我设置的0.1的第一根线开始画起,而此时这根线是0.1-2147483647,很显然是画不出的,所以就不会有斜线,而当设置了间隔后就可以了
密码修改失败请联系微信:mofangbao

新浪微博达人勋

 楼主| 发表于 2015-10-11 19:55:05 | 显示全部楼层
本帖最后由 我想养猫 于 2015-10-11 19:58 编辑

这是我出的图,勉勉强强达到要求把
关于叠加,我还要再学习一下才能成功了_(:з」∠)_

prob_h.pdf

142.45 KB, 下载次数: 197

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

新浪微博达人勋

发表于 2015-10-11 19:58:44 | 显示全部楼层
6666666666666666666666666666666
密码修改失败请联系微信:mofangbao
您需要登录后才可以回帖 登录 | 立即注册 新浪微博登陆

本版积分规则

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

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

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