Hi,
I mean to return a overlay pic seems a big problem. So, I am not sure whether I can panel the overlayed pics or not.
Thanks.
Sincerely,
Li
2010-03-29
-------------------------------------------------------------
发件人:lxf
发送日期:2010-03-29 09:30:28
收件人:ncl-talk
抄送:
主题:Help: How to panel the overlayed plots?
Hi,
I met some problem about how to panel the overlayed figures.
I mean a contour map (using gsn_csm_contour ) overlayed on a shaded one (use gsn_csm_contour_map_polar), and then panel 2 or more of these overlayed pic. I checked the http://www.ncl.ucar.edu/Applications/panel.shtml and did not find the example I want.
Any suggestion or help is appreciated.
Here, I give the main program and funtions I wrote as following:
;--------------------------------------------
; Main Program to draw panel
;--------------------------------------------
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"
load "./sub_draw.ncl" ; This is a function to draw the overlayed pictures
begin
outname = "./plot"
fili = "in.nc"
f = addfile (fili , "r")
u = f->u
h = f->h
; Ploting
;......
wks = gsn_open_wks("eps",outname)
cmap = RGBtoCmap("rgb.y-r.txt") ; RCGtoCmap in contributed
gsn_define_colormap(wks,cmap)
npanels = 2
plot = new(npanels,graphic)
plot(0) = sub_draw(wks,outname,it,ilev,u(time|it,{lev|500},{lat|0:90},lon|:),h(time|it,{lev|500},{lat|0:90},lon|:))
plot(1) = sub_draw(wks,outname,it,ilev,u(time|it,{lev|500},{lat|0:90},lon|:),h(time|it,{lev|500},{lat|0:90},lon|:))
resP = True ; modify the panel plot
resP@gsnMaximize = True
resP@gsnMaximize = True
resP@gsnFrame = False
resP@gsnPaperOrientation = "portrait"
resP@gsnPanelBottom = 0.05
resP@gsnPanelLabelBar = True
resP@lbLabelFontHeightF = 0.009;0.011
resP@lbLabelAutoStride = 2
resP@pmLabelBarWidthF = 0.45 ;0.55 ; default is shorter
resP@pmLabelBarHeightF = 0.05 ;0.06 ; default is taller
gsn_panel(wks,plot,(/2,1/),resP)
frame(wks)
end
;--------------------------------------------
; Functions called by Main Program
;--------------------------------------------
undef("sub_draw")
function sub_draw(wks,outname,it,ilev,u,h)
local it,ilev,outname,u,h,wks,res1,res2,plot1,plot2
begin
; create the First plot
;...
res1 = True
;res1@gsnPolar = "NH" ; select northern hemisphere
res1@gsnPolarNH = True
res1@gsnFrame = False ; don't advance frame
res1@gsnDraw = False
res1@gsnAddCyclic = True
res1@mpFillOn = False
res1@mpMinLatF = 20 ; minimum latitude
res1@mpGridAndLimbOn = True ; turn off grid
res1@mpGridLineThicknessF =1.5
res1@gsnTickMarksOn = True ; turn off tickmarks
res1@cnInfoLabelOn = False
res1@cnFillOn = True ;True ; color fill
res1@cnLinesOn = False
res1@lbLabelBarOn = False
res1@lbLabelFontHeightF = 0.02
res1@lbLabelAutoStride = 2
res1@pmLabelBarWidthF = 1.0 ; default is shorter
res1@pmLabelBarHeightF = 0.12 ; default is taller
res1@vpWidthF = 1.1
res1@gsnPaperOrientation = "portrait"
res1@gsnMaximize = True
res1@gsnSpreadColors = True
res1@cnLevelSelectionMode = "ManualLevels" ; set manual contour levels
res1@cnMinLevelValF = -60
res1@cnMaxLevelValF = 60
res1@cnLevelSpacingF = 10
plot1= gsn_csm_contour_map_polar(wks,h,res1)
; create the Second Plot
;...
res2 = True ; plot mods desired
res2@gsnFrame = False ; don't advance frame
res2@gsnDraw = False
res2@gsnAddCyclic = True
res2@cnInfoLabelOn = False
res2@cnFillOn = False ;True ; color fill
res2@gsnContourLineThicknessesScale = 2
res2@gsnContourZeroLineThicknessF = 2 ; doubles thickness of zero contour
res2@gsnContourNegLineDashPattern = 1
res2@vpWidthF = 1.1
res2@gsnPaperOrientation = "portrait"
res2@gsnMaximize = True
res2@gsnLeftString = "Phase "+it+" / "+ilev+"hPa " ; no left string
res2@cnLevelSelectionMode = "ManualLevels" ; Manually set the cn Levels
res2@cnMinLevelValF = -2.4 ; set min contour level
res2@cnMaxLevelValF = 2.4 ; set max contour level
res2@cnLevelSpacingF = 0.4
plot2 = gsn_csm_contour(wks,u,res2)
; overlay the plots
;...
overlay(plot1,plot2)
;draw(plot1)
;frame(wks)
return()
end
;--------------------------------------------
Sincerely,
Li
_______________________________________________
ncl-talk mailing list
List instructions, subscriber options, unsubscribe:
http://mailman.ucar.edu/mailman/listinfo/ncl-talk
Received on Mon Mar 29 11:44:37 2010
This archive was generated by hypermail 2.1.8 : Thu Apr 01 2010 - 11:31:45 MDT