Re: changing aspect ratio of the XY plot

From: Ufuk Utku Turuncoglu (BE) <u.utku.turuncoglu_at_nyahnyahspammersnyahnyah>
Date: Thu Feb 02 2012 - 09:03:36 MST

Hi,

Thank you very much. Now it is working without any problem.

Best Regards,

--ufuk

On 2/2/12 12:06 PM, Mary Haley wrote:
> Hi Ufuk,
>
> My apologies: with the gsn_attach_plots function, it appears to be maximizing the size of the plots no matter what.
>
> You can work around this by adding the following code just before the "draw(plot1)" code:
>
>
> setvalues plot1
> "vpHeightF" : res1@vpHeightF
> "vpWidthF" : res1@vpWidthF
> end setvalues
>
> setvalues plot2
> "vpHeightF" : res1@vpHeightF
> "vpWidthF" : res1@vpWidthF
> end setvalues
>
>
> You may also want to set vpXF and vpYF to reposition both plots.
>
> --Mary
>
> On Jan 30, 2012, at 7:00 PM, Ufuk Utku Turuncoglu (BE) wrote:
>
>> ;-----------------------------------------------------------
>> 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 "plot_func.ncl"
>> ;-----------------------------------------------------------
>> begin
>> ;--- parameters ---
>> debug = False
>>
>> ;--- define basin ---
>> id = 0
>>
>> ;--- definitions ---
>> ;--- basins ---
>> bids = (/ 1, 2, 3, 4, 5, 6, 0 /)
>> bdsc = (/ "CAS", \
>> "Volga", \
>> "Ural", \
>> "Kura", \
>> "CAS+Volga+Ural+Kura", \
>> "Volga+Ural+Kura", \
>> "CAS20" /)
>> nbasin = dimsizes(bids)
>>
>> ;--- open files ---
>> dres = "20km"
>>
>> nc_trip1 = addfile("dsets/trip/"+dres+"/trip_rcm_nn.nc", "r")
>> nc_obs1 = addfile("dsets/srb/"+dres+"/srbLW_1989-2007_rcm_mon.nc", "r")
>> nc_obs2 =
>> addfile("dsets/srb/"+dres+"/srbSW_local_1989-2007_rcm_mon.nc", "r")
>> nc_data1n = addfile("dsets/runs/74/flw_1989-2007_mon.nc", "r")
>> ;nc_data1d = addfile("dsets/runs/74/fld_1989-2007_mon.nc", "r")
>> nc_data2n = addfile("dsets/runs/74/fsw_1989-2007_mon.nc", "r")
>> ;nc_data2d = addfile("dsets/runs/74/sina_1989-2007_mon.nc", "r")
>>
>> ;--- read variables ---
>> rb1 = nc_trip1->rbasin
>>
>> varo1d = nc_obs1->lw_sfc_dn
>> varo1n = nc_obs1->lw_sfc_net
>> varo1u = varo1d-varo1n
>>
>> varo2u = nc_obs2->sw_sfc_up
>> varo2d = nc_obs2->sw_sfc_dn
>> varo2n = varo2d-varo2u
>>
>> varm1n = nc_data1n->flw
>> ;varm1d = nc_data1d->fld
>> ;varm1u = varm1d-varm1n
>>
>> varm2n = nc_data2n->fsw
>> ;varm2d = nc_data2d->sina
>> ;varm2u = varm2d-varm2n
>>
>> ;--- read mask and coordinates ---
>> lat2d = nc_data1n->xlat
>> lon2d = nc_data1n->xlon
>> lsmask = nc_data1n->mask
>> dims = dimsizes(lat2d)
>> jm = dims(0)
>> im = dims(1)
>>
>> ;--- mask data based on basin and RCM land sea mask ---
>> dmask = new((/ jm, im /), "integer")
>> dmask = 0
>>
>> ;--- sub region ---
>> xbox = (/ 46.0, 56.0, 56.0, 46.0, 46.0 /)
>> ybox = (/ 35.5, 35.5, 48.0, 48.0, 35.5 /)
>>
>> do i = 0, im-1
>> do j = 0, jm-1
>> if (gc_inout(lat2d(j,i), lon2d(j,i), ybox, xbox) .and. \
>> lsmask(j,i) .eq. 0.0) then
>> dmask(j,i) = 1
>> end if
>> end do
>> end do
>>
>> ;--- create basin data ---
>> data = tointeger(lsmask)*0
>> data = where(dmask .eq. 1, 1, \
>> where(rb1 .eq. 13, 2, \
>> where(rb1 .eq. 78, 3, \
>> where(rb1 .eq. 93, 4, 99))))
>> data = mask(data, data .eq. 99, False)
>> data@lat2d = lat2d
>> data@lon2d = lon2d
>>
>> ;--- create temporary arrays ---
>> ntime = dimsizes(varo1n(:,0,0))
>> y1ou = new((/ nbasin, ntime /), typeof(varo1n))
>> y1od = new((/ nbasin, ntime /), typeof(varo1n))
>> y1on = new((/ nbasin, ntime /), typeof(varo1n))
>>
>> y2ou = new((/ nbasin, ntime /), typeof(varo2n))
>> y2od = new((/ nbasin, ntime /), typeof(varo2n))
>> y2on = new((/ nbasin, ntime /), typeof(varo2n))
>>
>> y1mu = new((/ nbasin, ntime /), typeof(varm1n))
>> y1md = new((/ nbasin, ntime /), typeof(varm1n))
>> y1mn = new((/ nbasin, ntime /), typeof(varm1n))
>>
>> y2mu = new((/ nbasin, ntime /), typeof(varm2n))
>> y2md = new((/ nbasin, ntime /), typeof(varm2n))
>> y2mn = new((/ nbasin, ntime /), typeof(varm2n))
>>
>> ;--- calculate average over basin ---
>> do i = 0, dimsizes(bids)-1
>>
>> print("******************************************************************")
>> print(""+bdsc(i)+" "+i)
>>
>> print("******************************************************************")
>>
>> ;--- init variables ---
>> varo1u_masked = varo1u
>> varo1d_masked = varo1d
>> varo1n_masked = varo1n
>>
>> varo2u_masked = varo2u
>> varo2d_masked = varo2d
>> varo2n_masked = varo2n
>>
>> ;varm1u_masked = varm1u
>> ;varm1d_masked = varm1d
>> varm1n_masked = varm1n
>>
>> ;varm2u_masked = varm2u
>> ;varm2d_masked = varm2d
>> varm2n_masked = varm2n
>>
>> ;--- mask data based on selected region ---
>> if ((bids(i) .gt. 0) .and. (bids(i) .lt. 5)) then
>> varo1u_masked = mask(varo1u, data .eq. bids(i), True)
>> varo1d_masked = mask(varo1d, data .eq. bids(i), True)
>> varo1n_masked = mask(varo1n, data .eq. bids(i), True)
>> varo2u_masked = mask(varo2u, data .eq. bids(i), True)
>> varo2d_masked = mask(varo2d, data .eq. bids(i), True)
>> varo2n_masked = mask(varo2n, data .eq. bids(i), True)
>> ;varm1u_masked = mask(varm1u, data .eq. bids(i), True)
>> ;varm1d_masked = mask(varm1d, data .eq. bids(i), True)
>> varm1n_masked = mask(varm1n, data .eq. bids(i), True)
>> ;varm2u_masked = mask(varm2u, data .eq. bids(i), True)
>> ;varm2d_masked = mask(varm2d, data .eq. bids(i), True)
>> varm2n_masked = mask(varm2n, data .eq. bids(i), True)
>> end if
>> if (bids(i) .eq. 5) then
>> varo1u_masked = mask(varo1u, ismissing(data), False)
>> varo1d_masked = mask(varo1d, ismissing(data), False)
>> varo1n_masked = mask(varo1n, ismissing(data), False)
>> varo2u_masked = mask(varo2u, ismissing(data), False)
>> varo2d_masked = mask(varo2d, ismissing(data), False)
>> varo2n_masked = mask(varo2n, ismissing(data), False)
>> ;varm1u_masked = mask(varm1u, ismissing(data), False)
>> ;varm1d_masked = mask(varm1d, ismissing(data), False)
>> varm1n_masked = mask(varm1n, ismissing(data), False)
>> ;varm2u_masked = mask(varm2u, ismissing(data), False)
>> ;varm2d_masked = mask(varm2d, ismissing(data), False)
>> varm2n_masked = mask(varm2n, ismissing(data), False)
>> end if
>> if (bids(i) .eq. 6) then
>> varo1u_masked = mask(varo1u, data .eq. 1, False)
>> varo1d_masked = mask(varo1d, data .eq. 1, False)
>> varo1n_masked = mask(varo1n, data .eq. 1, False)
>> varo2u_masked = mask(varo2u, data .eq. 1, False)
>> varo2d_masked = mask(varo2d, data .eq. 1, False)
>> varo2n_masked = mask(varo2n, data .eq. 1, False)
>> ;varm1u_masked = mask(varm1u, data .eq. 1, False)
>> ;varm1d_masked = mask(varm1d, data .eq. 1, False)
>> varm1n_masked = mask(varm1n, data .eq. 1, False)
>> ;varm2u_masked = mask(varm2u, data .eq. 1, False)
>> ;varm2d_masked = mask(varm2d, data .eq. 1, False)
>> varm2n_masked = mask(varm2n, data .eq. 1, False)
>> end if
>>
>> if (debug) then
>> ;--- plot data ---
>> wks = gsn_open_wks("pdf","plot_rad3_"+i)
>> gsn_define_colormap(wks, "gui_default")
>>
>> ;--- define map resource ---
>> res = True
>> res@gsnAddCyclic = False
>> res@gsnLeftString = ""
>> res@gsnRightString = ""
>> res@cnFillOn = True
>> res@cnFillMode = "CellFill"
>> res@cnInfoLabelOn = False
>> res@cnLinesOn = False
>> res@cnLineLabelsOn = False
>> res@lbLabelBarOn = True
>> res@lbLabelFontHeightF = 0.01
>> res@pmLabelBarWidthF = 0.06
>> res@pmTickMarkDisplayMode = "Always"
>> res@tiXAxisFontHeightF = 0.01
>> res@tiYAxisFontHeightF = 0.01
>> res@tmXBLabelFontHeightF = 0.01
>> res@tmYLLabelFontHeightF = 0.01
>> res@tiXAxisString = "Longitude"
>> res@tiYAxisString = "Latitude"
>>
>> ;--- map definitions ---
>> res@mpDataBaseVersion = "HighRes"
>> res@mpProjection = "LambertConformal"
>> res@mpOutlineDrawOrder = "PostDraw"
>> res@mpGridAndLimbOn = False
>> res@mpLambertParallel1F = 30
>> res@mpLambertParallel2F = 60
>>
>> res@mpLimitMode = "Corners"
>> res@mpLeftCornerLatF = 35.0
>> res@mpLeftCornerLonF = 37.0
>> res@mpRightCornerLatF = 64.0
>> res@mpRightCornerLonF = 67.0
>> res@mpLambertMeridianF = 51.0
>>
>> varm1_masked@lon2d = lon2d
>> varm1_masked@lat2d = lat2d
>> plot = gsn_csm_contour_map(wks, varm1_masked(0,:,:), res)
>>
>> delete(wks)
>> delete(plot)
>> end if
>>
>> ;--- calculate basin averages ---
>> y1ou(i,:) = dim_avg_n(varo1u_masked, (/1,2/))
>> y1od(i,:) = dim_avg_n(varo1d_masked, (/1,2/))
>> y1on(i,:) = dim_avg_n(varo1n_masked, (/1,2/))
>> y2ou(i,:) = dim_avg_n(varo2u_masked, (/1,2/))
>> y2od(i,:) = dim_avg_n(varo2d_masked, (/1,2/))
>> y2on(i,:) = dim_avg_n(varo2n_masked, (/1,2/))
>> ;y1mu(i,:) = dim_avg_n(varm1u_masked, (/1,2/))
>> ;y1md(i,:) = dim_avg_n(varm1d_masked, (/1,2/))
>> y1mn(i,:) = dim_avg_n(varm1n_masked, (/1,2/))
>> ;y2mu(i,:) = dim_avg_n(varm2u_masked, (/1,2/))
>> ;y2md(i,:) = dim_avg_n(varm2d_masked, (/1,2/))
>> y2mn(i,:) = dim_avg_n(varm2n_masked, (/1,2/))
>> end do
>>
>> xf = cd_calendar(nc_obs1->time, 4)
>>
>> ;--- plot data ---
>> wks = gsn_open_wks("newpdf", "plot_rad3")
>> gsn_define_colormap(wks, "uniform")
>>
>> ;--- resource for text ---
>> res_text = True
>> res_text@txFontHeightF = 0.010
>> res_text@txJust = "CenterRight"
>>
>> ;--- resource for plot ---
>> res1 = True
>> res1@gsnDraw = False
>> res1@gsnFrame = False
>> res1@trXMinF = 1988.5
>> res1@trXMaxF = 2008.5
>> res1@mpShapeMode = "FreeAspect"
>> res1@vpHeightF = 0.25 ;0.1
>> res1@vpWidthF = 0.55 ;0.70
>>
>> colors = (/ "red", "blue" /)
>> res1@xyLineColors = colors
>> res1@xyLineThicknesses = (/ 1.5, 1.5 /)
>> res1@xyDashPatterns = (/ 0.0, 0.0 /)
>>
>> res1@tmXBMode = "Explicit"
>> res1@tmXBValues = fspan(1989,2008,20)
>> res1@tmXBLabels = fspan(1989,2008,20)
>> res1@tmXBLabelAngleF = 90.0
>> res1@tmXBLabelJust = "CenterRight"
>>
>> res2 = res1
>>
>> ;--- plot longwave ---
>> res1@gsnLeftString = "Basin: "+bdsc(id)
>> res1@gsnLeftStringFontHeightF = 0.010
>> res1@tiXAxisOn = False
>> res1@tmXBLabelsOn = False
>> res1@tmYLLabelFontHeightF = 0.01
>>
>> plot1 = gsn_csm_xy(wks, xf, (/ y1on(id,:), -1.0*y1mn(id,:) /), res1)
>> dum1 = gsn_add_text(wks, plot1, "Longwave Radiation (W/m~S~2~N~)",
>> max(xf)+0.5, -45, res_text)
>>
>> ;--- plot shortwave ---
>> res2@gsnLeftString = ""
>> res2@tmXBLabelsOn = True
>> res2@tiXAxisOn = True
>> res2@tiXAxisString = "Time (year)"
>> res2@tiXAxisFontHeightF = 0.012
>> res2@tmYLLabelsOn = False
>> res2@tmYRLabelsOn = True
>> res2@tiYAxisSide = "Right"
>> res2@tmYRLabelFontHeightF = 0.01
>> res2@tmXBLabelFontHeightF = 0.01
>>
>> plot2 = gsn_csm_xy(wks, xf, (/ y2on(id,:), y2mn(id,:) /), res2)
>> dum2 = gsn_add_text(wks, plot2, "Shortwave Radiation (W/m~S~2~N~)",
>> max(xf)+0.5, 300, res_text)
>>
>> ;--- attach plots ---
>> res_attach1 = True
>> res_attach1@gsnAttachPlotsXAxis = True
>> res_attach2 = True
>> res_attach2@gsnAttachPlotsXAxis = True
>> plot3 = gsn_attach_plots(plot1, (/plot2/), res_attach1, res_attach2)
>>
>> drawNDCGrid(wks)
>> draw(plot1)
>> draw_vp_box(wks,plot1)
>>
>> frame(wks)
>> ;pres = False
>> ;maximize_output(wks, pres)
>> end
>> ----
>>
>> _______________________________________________
>> ncl-talk mailing list
>> List instructions, subscriber options, unsubscribe:
>> http://mailman.ucar.edu/mailman/listinfo/ncl-talk
>
>

_______________________________________________
ncl-talk mailing list
List instructions, subscriber options, unsubscribe:
http://mailman.ucar.edu/mailman/listinfo/ncl-talk
Received on Thu Feb 2 09:04:04 2012

This archive was generated by hypermail 2.1.8 : Mon Feb 06 2012 - 14:24:56 MST