;*********************************************** ; conLev_6.ncl ; ; Concepts illustrated: ; - Generating dummy integer data ; - Contouring discrete values ; - Centering labels with respect to labelbar boxes ; - Changing the labelbar labels ;*********************************************** load "$NCARG_ROOT/lib/ncarg/nclscripts/csm/gsn_code.ncl" load "$NCARG_ROOT/lib/ncarg/nclscripts/csm/gsn_csm.ncl" begin ;---Create some dummy data. npts = 8 data = toint(generate_2d_array(10, 10, -8, 8, 0, (/npts,npts/))) ; make sure we have integer values printMinMax(data,0) ;---Open png for graphics. wks = gsn_open_wks("x11","conLev") res = True res@gsnMaximize = True ; Maximize plot in frame. res@cnFillOn = True ; Turn on contour fill res@cnLinesOn = False ; Turn off contour lines res@cnFillPalette = "nrl_sirkes_nowhite" ; ; The data values range from -8 to 8, as integers. Use contour ; levels that straddle these values, in order to get the effect ; of discrete contours. ; res@cnLevelSelectionMode = "ExplicitLevels" res@cnLevels = ispan(-75,75,10)/10. ; (/-7.5,-6.5,...,0,...,6.5,7.5/) ; ; The default labelbar gives you labels between boxes. In order ; to get them centered, you have to set lbLabelAlignment, and then ; lbLabelStrings in order to provide a label for that extra box. ; res@lbLabelAlignment = "BoxCenters" ; labels center with middle of boxes res@lbLabelStrings = "" + ispan(-8,8,1) ; need to define same number of labels as levels res@lbLabelPosition = "Center" ; label position contour = gsn_csm_contour(wks,data,res) end