[ncl-talk] error: gsn_open_wks is undefined?
Ipshita Majhi
ipmajhi at alaska.edu
Tue Aug 5 17:38:46 MDT 2014
Hi,
I am trying to plot two bar plots in one common plot
Here is the code. The error is gsn_open_wks is undefined. How do I approach
this problem.
Thank you in advance
;Trend and monthly Climatology together
;load "$NCARG_ROOT/lib/ncarg/nclscripts/csm/gsn_code.ncl"
load "$NCARG_ROOT/lib/ncarg/nclscripts/csm/gsn_csm.ncl"
months=(/1,2,3,4,5,6,7,8,9,10,11,12/)
x=asciiread("~/Documents/PhD_June_2015/NCL_Moonsoon/Data_output/Trend_monthly.txt",(/12,2/),
"float")
print(x)
begin
npts = 12
nplots = 2
;
; Define the x values for each set of bars to be slightly shifted
; so the bars don't overlap. The bars are shifted by 0.15 each
; which is what we'll use for the bar width later.
;
ii = ispan(0,npts-1,1)
bar_width = 0.15
xarr = new((/nplots,npts/),float)
do i=0,nplots-1
xarr(i,:) = ii+0.775 + (i*bar_width)
end do
colors = (/"red","lightblue"/)
wks=gsn_open_wks("png","bar")
sres = True
sres at gsnDraw = False
sres at gsnFrame = False
sres at vpWidthF = 0.7
sres at vpHeightF = 0.5
sres at trXMinF = min(xarr)-0.5 ; Leave some space before
sres at trXMaxF = max(xarr)+0.5 ; and after bars.
sres at trYMinF = 0.0
sres at trYMaxF = max(stdarr)+.1 ; Leave some space at top
sres at gsnXYBarChart = True
sres at gsnXYBarChartBarWidth = bar_width ; make bar width
smaller, otherwise
; they will overlap
sres at tmXBMode = "Explicit" ; explicit labels
sres at tmXBValues = ispan(1,12,1)
sres at tmXBLabels =
(/"Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep", \
"Oct","Nov","Dec"/)
sres at tmXBLabelFontHeightF = 0.0205
sres at tmXTLabelFontHeightF = 0.0205
sres at tmYLLabelFontHeightF = 0.0225
sres at gsnRightString = ""
sres at tiYAxisString = "Precipitation in mm"
;
; Loop through each plot, create it, and then overlay
; subsequent ones one the first one.
;
plots = new(nplots,graphic)
do i=0,1
sres at gsnXYBarChartColors = colors(i)
plots(i) = gsn_csm_xy(wks,xarr(i,:),x(:,i),sres)
if(i.gt.0) then
overlay(plots(0),plots(i))
end if
end do
;---Drawing plots(0) will also draw all the overlaid plots.
draw(plots(0))
frame(wks) ; Advance the frame.
end
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://mailman.ucar.edu/pipermail/ncl-talk/attachments/20140805/716b1ca9/attachment.html
More information about the ncl-talk
mailing list