爱气象,爱气象家园! 

气象家园

 找回密码
 立即注册

QQ登录

只需一步,快速开始

新浪微博登陆

只需一步, 快速开始

搜索
查看: 8945|回复: 10

[图形美化] 时间序列图

[复制链接]

新浪微博达人勋

发表于 2016-4-29 20:31:09 | 显示全部楼层 |阅读模式

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

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

x
我又nc的资料33年的季节平均资料,即每年有1,4,7,10月的,想把每年的区域平均值画一个时间序列,就是33年的区域平均值画一个时间序列的,我先求平均,然后写成grd文件,又配了ctl文件,可是画出来的图确是一条直线,肯定错了,可是不知道错在哪里,求大神指导
gs文件:
'reinit'
'sdfopen d:\paper\sss\e008543m1980_2012_pre_chi_remapcon_24h_muldpm_seasmean_r.nc'
'set x 1'
'set y 1'
'set z 1'
'set t 1 133'
'define a=tloop(aave(var142,lon=72.5,lon=136,lat=18,lat=72))'
'set fwrite d:\paper\biaozhuncha\1.grd'
'set gxout fwrite'
'set x 1'
'set y 1'
'set z 1'
tm=1
i=1
while(tm<=33)
'define b=ave(a,t='i',t='i'+3)'
'd b'
i=i+4
tm=tm+1
endwhile
'disable fwrite'
;
ctl文件:
dset d:\paper\biaozhuncha\1.grd
undef 9e+33
xdef 1 linear 0 1
ydef 1 linear 0 1
zdef 1 linear 0 1
tdef 33 linear 00Z10APR1980 1yr
vars 1
b 0 99 pre
endvars

画出了这种图:
图片1.png
密码修改失败请联系微信:mofangbao

新浪微博达人勋

 楼主| 发表于 2016-4-29 20:33:54 | 显示全部楼层
大神指导指导,蒸的不知道该怎么办了
密码修改失败请联系微信:mofangbao

新浪微博达人勋

发表于 2016-4-30 08:35:46 | 显示全部楼层
'set x 1'
'set y 1'
'set z 1'
'set t 1 133'
'define a=tloop(aave(var142,lon=72.5,lon=136,lat=18,lat=72))'
这个求出来的应该不是楼主想要的区域平均,x,y,z都固定了,那就是一个点,也就是一个数,但最终应该也不是一条直线吧?
密码修改失败请联系微信:mofangbao

新浪微博达人勋

发表于 2016-4-30 08:35:56 | 显示全部楼层
'set x 1'
'set y 1'
'set z 1'
'set t 1 133'
'define a=tloop(aave(var142,lon=72.5,lon=136,lat=18,lat=72))'
这个求出来的应该不是楼主想要的区域平均,x,y,z都固定了,那就是一个点,也就是一个数,但最终应该也不是一条直线吧?
密码修改失败请联系微信:mofangbao

新浪微博达人勋

发表于 2016-4-30 12:26:05 | 显示全部楼层
在while循环之前,把时间固定,'set t 1'。否则,同一个b值会出现133次,形成你图中的直线。
另外,'define b=ave(a,t='i',t='i'+3)' 这个语句是错的,应写为'define b=ave(a,t='i',t='i+3‘)'

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

新浪微博达人勋

 楼主| 发表于 2016-5-2 16:44:49 | 显示全部楼层
pqman3 发表于 2016-4-30 12:26
在while循环之前,把时间固定,'set t 1'。否则,同一个b值会出现133次,形成你图中的直线。
另外,'defin ...

谢谢,已经解决了
密码修改失败请联系微信:mofangbao

新浪微博达人勋

 楼主| 发表于 2016-5-2 16:46:34 | 显示全部楼层
谢谢大家,已经解决了,现po上完整的gs文件
'reinit'
'sdfopen d:\paper\sss\e008543m1980_2012_pre_chi_remapcon_24h_muldpm_seasmean_r.nc'
'set x 1'
'set y 1'
'set z 1'
'set t 1 133'
'define a1=tloop(aave(var142,lon=72.5,lon=136,lat=18,lat=72))'
'set fwrite d:\paper\biaozhuncha\1.grd'
'set gxout fwrite'
'set x 1'
'set y 1'
'set z 1'
sum1=0.0
tm=1
while(tm<=33)
l=(tm-1)*4+1
'set t 'tm''
'define be=ave(a1,t='l',t='l'+3)'
'd be'
tm=tm+1
endwhile
'disable fwrite'

'reinit'
'sdfopen d:\paper\sss\cru_ts3.22.1980_2012.pre_eas_remapcon_seasmean_r.nc'
'set x 1'
'set y 1'
'set z 1'
'set t 1 133'
'define a2=tloop(aave(pre,lon=72.5,lon=136,lat=18,lat=72))'
'set fwrite d:\paper\biaozhuncha\2c.grd'
'set gxout fwrite'
'set x 1'
'set y 1'
'set z 1'
tm=1
while(tm<=33)
l=(tm-1)*4+1
'set t 'tm''
'define bc=ave(a2,t='l',t='l'+3)'
'd bc'
tm=tm+1
endwhile
'disable fwrite'

'reinit'
'enable print d:\paper\biaozhuncha\ec11111.gmf'
'open d:\paper\biaozhuncha\1.ctl'
'open d:\paper\biaozhuncha\2e.ctl'
'set vpage 1 10 0.5 8'
'set xlopts 1 6 0.22'
'set ylopts 1 6 0.22'
'set grads off'
'set ylpos -0.0 1'
'set vrange 28 65'
'set yaxis 28 65 5'
'set dfile 1'
'set x 1'
'set y 1'
'set t 1 33'
'define ae=ave(be,t=1,t=33)'
'set x 1'
'set y 1'
'set z 1'
'set t 1 33'
'd be'
'd ae'
'set ylpos -0.0 r'
'set vrange 11 23'
'set yaxis 11 23 1'
'set ccolor 4'
'set dfile 2'
'set x 1'
'set y 1'
'set t 1 33'
'define ac=ave(c,t=1,t=33)'
'set x 1'
'set y 1'
'set z 1'
'set t 1 33'
'set cstyle 2'
'd c'
'd ac'
'print'
'disable print'
;

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

新浪微博达人勋

 楼主| 发表于 2016-5-2 16:47:23 | 显示全部楼层
pqman3 发表于 2016-4-30 12:26
在while循环之前,把时间固定,'set t 1'。否则,同一个b值会出现133次,形成你图中的直线。
另外,'defin ...

define那个格式没错,前面的错了,谢谢
密码修改失败请联系微信:mofangbao

新浪微博达人勋

 楼主| 发表于 2016-5-2 16:48:21 | 显示全部楼层
四叶草 发表于 2016-4-30 08:35
'set x 1'
'set y 1'
'set z 1'

我求的是时间序列啊,所以x,y,z要固定啊
密码修改失败请联系微信:mofangbao

新浪微博达人勋

发表于 2016-5-6 09:42:20 | 显示全部楼层
bigbingr 发表于 2016-5-2 16:48
我求的是时间序列啊,所以x,y,z要固定啊

注意层主的建议是指你在计算区域平均的时候,不应该使用"set x 1; set y 1":因为你的aave函数里有经纬度网格范围的选取了。
密码修改失败请联系微信:mofangbao
您需要登录后才可以回帖 登录 | 立即注册 新浪微博登陆

本版积分规则

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

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

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