- 积分
- 4282
- 贡献
-
- 精华
- 在线时间
- 小时
- 注册时间
- 2021-3-2
- 最后登录
- 1970-1-1
![未绑定新浪微博用户 新浪微博达人勋](source/plugin/sina_login/img/gray.png)
|
登录后查看更多精彩内容~
您需要 登录 才可以下载或查看,没有帐号?立即注册
x
Method 1: - res@pmTickMarkDisplayMode = "Always"
复制代码直接设置这个命令,但是经纬度的间隔不能更改,只适用于经纬度图; Method 2: 设置坐标轴对应的值,每一次都设置感觉有点烦; - res@tmXBLabels = (/"90~S~o~N~","60~S~o~N~","30~S~o~N~","0","30~S~o~N~", "60~S~o~N~","90~S~o~N~"/)
复制代码根据兰伯特投影的那个例子,简单的写了个函数;试了下感觉可行 - ; lon:-180-180 lon_area=1,
- ; lon:0:360 else
- ; lon_interval和lat_interval 为经纬度的间隔
- function add_du_labels(drawlats,drawlate,drawlons,drawlone,lat_interval,lon_interval,lon_area)
- local nlat
- begin
- ;////////////////////////////////////////////////////
- ;------------纬度
- lat_values = ispan(toint(drawlats),toint(drawlate),lat_interval) * 1. ;间隔30
- nlat = dimsizes(lat_values)
-
- lat_label_lft = new(nlat,string) ; attached strings.
- lat_label_rgt = new(nlat,string) ; attached strings.
- do n=0,nlat-1
- ;添加适当的空白
- lat_label_rgt(n) = " " + lat_values(n) + "~S~o~N~"
- ;检查是否在北纬、南纬或赤道上
- if(lat_values(n).lt.0) then
- lat_label_lft(n) = lat_values(n) + "~S~o~N~S "
- lat_label_rgt(n) = lat_label_rgt(n) + "S"
- end if
- if(lat_values(n).gt.0) then
- lat_label_lft(n) = lat_values(n) + "~S~o~N~N "
- lat_label_rgt(n) = lat_label_rgt(n) + "N"
- end if
- if(lat_values(n).eq.0) then
- lat_label_lft(n) = lat_values(n) + "~S~o~N~ "
- end if
- end do
- ;------------经度
- ;----------------------------------------------------------------------
- lon_values = ispan(toint(drawlons),toint(drawlone),lon_interval) * 1.
- nlon = dimsizes(lon_values)
- lon_label_bot = new(nlon,string) ; attached strings.
- do n=0,nlon-1
- ;检查是否在东经、西经或 0 度上
- lon_label_bot(n) = " ~C~ ~C~" + abs(lon_values(n)) + "~S~o~N~"
-
- if (lon_area.eq.1) then
-
- ;经度范围为-180-180
- if(lon_values(n).gt.0) then
- lon_label_bot(n) = lon_label_bot(n) + "E"
- end if
- if(lon_values(n).lt.0) then
- lon_label_bot(n) = lon_label_bot(n) + "W"
- end if
- else
-
- ;经度范围为0-360
- if(lon_values(n).gt.0.and.lon_values(n).lt.180) then
- lon_label_bot(n) = lon_label_bot(n) + "E"
- end if
- if(lon_values(n).gt.180.and.lon_values(n).lt.360) then
- lon_label_bot(n) = " ~C~ ~C~" + abs(lon_values(n)-180) + "~S~o~N~W"
- ;lon_label_bot(n) = lon_label_bot(n) + "W"
- end if
- if(lon_values(n).eq.360)
- lon_label_bot(n) = " ~C~ ~C~" + abs(lon_values(n)-360) + "~S~o~N~"
- end if
- end if
-
- end do
- return [/lat_values,lat_label_lft,lon_values,lon_label_bot/]
- end
复制代码使用方法:需要设置经纬度的起始坐标和间隔 - ;------------------------------------------------------
- drawlons=0
- drawlone=360
-
- drawlats=20
- drawlate=90
- lon_interval=60
- lat_interval=30
- res1@gsnMajorLonSpacing =lon_interval
- res1@gsnMajorLatSpacing =lat_interval
- res1@mpMinLatF=drawlats
- res1@mpMaxLatF=drawlate
- res1@mpMinLonF=drawlons
- res1@mpMaxLonF=drawlone
- res1@mpCenterLonF = 180
- lon_area=2
- lonlat_infor=add_du_labels(drawlats,drawlate,drawlons,drawlone,lat_interval,lon_interval,lon_area)
-
- res1@tmYLMode = "Explicit"
- res1@tmYLValues=lonlat_infor[0]
- res1@tmYLLabels=lonlat_infor[1]
- res1@tmXBMode = "Explicit"
- res1@tmXBValues=lonlat_infor[2]
- res1@tmXBLabels=lonlat_infor[3]
- res1@tmXBLabelDeltaF=-2 ;x轴标注与刻度的距离
- res1@tmXBLabelFontHeightF=0.08 ;字体大小
- res1@tmYLLabelFontHeightF=0.08
复制代码
|
|