爱气象,爱气象家园! 

气象家园

 找回密码
 立即注册

QQ登录

只需一步,快速开始

新浪微博登陆

只需一步, 快速开始

搜索
查看: 1405|回复: 4

[作图] NCL画图重叠

[复制链接]

新浪微博达人勋

发表于 2016-4-21 15:31:53 | 显示全部楼层 |阅读模式

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

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

x

中间图出现重叠

中间图出现重叠
图出现下面问题,程序附下,不知道怎么解决,求助
;************************************************
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
;************************************************
; open file and read in variable
;***********************************************
  data = addfile("/gpfshome/ceshi4/liuy/ncdata/niwen.nc","r")
  r    =short2flt( data->r(104:107,:,:,:))
  t    =short2flt( data->t(104:107,:,:,:))
  w    =short2flt( data->w(104:107,:,:,:))
  tem=new((/4,12/),float)
  ver=new((/4,12/),float)
  do i=0,3
    do j=0,11
  ver(i,j)=avg(w(i,j,:,:))
  end do
    end do
;  print(tem)
;printVarSummary(tem)
;break
;*******************************************start plot***********
  wks=gsn_open_wks("eps","yaosu")
  res                           =True
  res@gsnMaximize               =True
  res@gsnDraw                   =False
  res@gsnFrame                  =False
  res@vpWidthF                  =0.4
  res@vpHeightF                 =0.4
;  res@tmYLOn                    =True  ;turn on left tickmarks
;  res@tmXROn                    =False ;turn off right tickmarks
;  res@XTOn                      =False ;turn off top tickmarks
;  res@tmYLLabelsOn              =True  ;turn on left labels
;  res@tmYRLabelsOn              =False ;turn off right labels
;  res@tmYLLabelJust             ="CenterRight"
;  res@xyLneThicknessF           =2.0

  xy1=gsn_csm_xy(wks,tem(0,:),t&level,res)
  xy2=gsn_csm_xy(wks,tem(1,:),t&level,res)
  xy3=gsn_csm_xy(wks,tem(2,:),t&level,res)
  xy4=gsn_csm_xy(wks,tem(3,:),t&level,res)
  res1                          =True
  res2                          =True
  res1@gsnMaximize              =True
  res2@gsnAttachPlotsXAxis      =False
  plot=gsn_attach_plots(xy1,(/xy2,xy3,xy4/),res1,res2)
  draw(xy1)
  y2=gsn_csm_xy(wks,rh(1,:),t&level,res)
  y3=gsn_csm_xy(wks,rh(2,:),t&level,res)
  y4=gsn_csm_xy(wks,rh(3,:),t&level,res)
;break
;*******************************************start plot***********
  wks=gsn_open_wks("eps","yaosu")
  res                           =True
  res@gsnMaximize               =True
  res@gsnDraw                   =False
  res@gsnFrame                  =False
  res@vpWidthF                  =0.4
  res@vpHeightF                 =0.4
;  res@tmYLOn                    =True  ;turn on left tickmarks
;  res@tmXROn                    =False ;turn off right tickmarks
;  res@XTOn                      =False ;turn off top tickmarks
;  res@tmYLLabelsOn              =True  ;turn on left labels
;  res@tmYRLabelsOn              =False ;turn off right labels
;  res@tmYLLabelJust             ="CenterRight"
;  res@xyLneThicknessF           =2.0

  xy1=gsn_csm_xy(wks,tem(0,:),t&level,res)
  xy2=gsn_csm_xy(wks,tem(1,:),t&level,res)
  xy3=gsn_csm_xy(wks,tem(2,:),t&level,res)
  xy4=gsn_csm_xy(wks,tem(3,:),t&level,res)
  res1                          =True
  res2                          =True
  res1@gsnMaximize              =True
  res2@gsnAttachPlotsXAxis      =False
  plot=gsn_attach_plots(xy1,(/xy2,xy3,xy4/),res1,res2)
  draw(xy1)
  y2=gsn_csm_xy(wks,rh(1,:),t&level,res)
  y3=gsn_csm_xy(wks,rh(2,:),t&level,res)
  y4=gsn_csm_xy(wks,rh(3,:),t&level,res)
  w    =short2flt( data->w(104:107,:,:,:))
;************************************************
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
;************************************************
; open file and read in variable
;***********************************************
  data = addfile("/gpfshome/ceshi4/liuy/ncdata/niwen.nc","r")
  r    =short2flt( data->r(104:107,:,:,:))
  t    =short2flt( data->t(104:107,:,:,:))
  w    =short2flt( data->w(104:107,:,:,:))
  tem=new((/4,12/),float)
  ver=new((/4,12/),float)
  do i=0,3
    do j=0,11
  ver(i,j)=avg(w(i,j,:,:))
  end do
    end do
;  print(tem)
;printVarSummary(tem)
;break
;*******************************************start plot***********
  wks=gsn_open_wks("eps","yaosu")
  res                           =True
  res@gsnMaximize               =True
  res@gsnDraw                   =False
  res@gsnFrame                  =False
  res@vpWidthF                  =0.4
  res@vpHeightF                 =0.4
;  res@tmYLOn                    =True  ;turn on left tickmarks
;  res@tmXROn                    =False ;turn off right tickmarks
;  res@XTOn                      =False ;turn off top tickmarks
;  res@tmYLLabelsOn              =True  ;turn on left labels
;  res@tmYRLabelsOn              =False ;turn off right labels
;  res@tmYLLabelJust             ="CenterRight"
;  res@xyLneThicknessF           =2.0

  xy1=gsn_csm_xy(wks,tem(0,:),t&level,res)
  xy2=gsn_csm_xy(wks,tem(1,:),t&level,res)
  xy3=gsn_csm_xy(wks,tem(2,:),t&level,res)
  xy4=gsn_csm_xy(wks,tem(3,:),t&level,res)
  res1                          =True
  res2                          =True
  res1@gsnMaximize              =True
  res2@gsnAttachPlotsXAxis      =False
  plot=gsn_attach_plots(xy1,(/xy2,xy3,xy4/),res1,res2)
  draw(xy1)
  y2=gsn_csm_xy(wks,rh(1,:),t&level,res)
  y3=gsn_csm_xy(wks,rh(2,:),t&level,res)
  y4=gsn_csm_xy(wks,rh(3,:),t&level,res)
;  res@tmYUseLeft                =False ;make right axis independent of
;  res@tmYLOn                    =True  ;turn on left tickmarks
;  res@tmXROn                    =False ;turn off right tickmarks
;  res@XTOn                      =False ;turn off top tickmarks
;  res@tmYLLabelsOn              =True  ;turn on left labels
;  res@tmYRLabelsOn              =False ;turn off right labels
;  res@YRMinorOn                 =False ;turn off minor ticks on Y axis  res@tmYLLabelFontHeightF      =0.015
;  res@tmYLLabelJust             ="CenterRight"
;  res@xyLneThicknessF           =2.0

  xy1=gsn_csm_xy(wks,tem(0,:),t&level,res)
  xy2=gsn_csm_xy(wks,tem(1,:),t&level,res)
  xy3=gsn_csm_xy(wks,tem(2,:),t&level,res)
  xy4=gsn_csm_xy(wks,tem(3,:),t&level,res)
  res1                          =True
  res2                          =True
  res1@gsnMaximize              =True
  res2@gsnAttachPlotsXAxis      =False
  plot=gsn_attach_plots(xy1,(/xy2,xy3,xy4/),res1,res2)
  draw(xy1)

  y1=gsn_csm_xy(wks,rh(0,:),t&level,res)
  y2=gsn_csm_xy(wks,rh(1,:),t&level,res)
  y3=gsn_csm_xy(wks,rh(2,:),t&level,res)
  y4=gsn_csm_xy(wks,rh(3,:),t&level,res)
  res1                          =True
  res2                          =True
  res1@gsnMaximize              =True
  res2@gsnAttachPlotsXAxis      =False
  plot1=gsn_attach_plots(y1,(/y2,y3,y4/),res1,res2)
  draw(y1)
  x1=gsn_csm_xy(wks,ver(0,:),w&level,res)
  x2=gsn_csm_xy(wks,ver(1,:),w&level,res)
  x3=gsn_csm_xy(wks,ver(2,:),w&level,res)
  x4=gsn_csm_xy(wks,ver(3,:),w&level,res)
  res1                          =True
  res2                          =True
  res1@gsnMaximize              =True
  res2@gsnAttachPlotsXAxis      =False
  plot2=gsn_attach_plots(x1,(/x2,x3,x4/),res1,res2)
  draw(x1)
  pnlres               = True
;  pnlres@gsnPanelDebug = True    ; Use to print values for position, and height.
  gsn_panel(wks,(/xy1,y1,x1/),(/3,1/),pnlres)
end
密码修改失败请联系微信:mofangbao

新浪微博达人勋

 楼主| 发表于 2016-4-22 09:39:03 | 显示全部楼层
请大家帮帮忙
密码修改失败请联系微信:mofangbao

新浪微博达人勋

 楼主| 发表于 2016-4-26 13:23:14 | 显示全部楼层
自己顶起来
密码修改失败请联系微信:mofangbao

新浪微博达人勋

发表于 2016-4-26 14:05:43 | 显示全部楼层
大哥,是你吗?
密码修改失败请联系微信:mofangbao

新浪微博达人勋

发表于 2023-5-12 22:03:40 | 显示全部楼层
虽然太久了,但正好解决了这个问题
gsn_panel(wks,(/xy1,y1,x1/),(/3,1/),pnlres)
有这个gsn_panel就不必  draw(x1)   draw(y1)了
把draw全部删掉就行
密码修改失败请联系微信:mofangbao
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册 新浪微博登陆

本版积分规则

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

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

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