load "$NCARG_ROOT/lib/ncarg/nclscripts/csm/gsn_code.ncl" load "$NCARG_ROOT/lib/ncarg/nclscripts/csm/gsn_csm.ncl" begin ;---Generate some random data. npts = 54 y = random_uniform(0,100,npts) x = ispan(1,npts,1) ;---Create list of colors for each y value color_list = (/"black","blue","red","green","orange","brown","black",\ "blue","red","green","orange","brown","black","blue",\ "red","green","orange","brown","black","blue","red",\ "green","orange","brown","black","blue","red","green",\ "orange","brown","black","blue","red","green","orange",\ "brown","black","blue","red","green","orange","brown",\ "black","blue","red","green","orange","brown","black",\ "blue","red","green","orange","brown"/) unique_colors = (/"black","blue","red","green","orange","brown"/) ncolors = dimsizes(unique_colors) ;---Fill 2D array by grouping the colors y2d = new((/ncolors,npts/),float) ; Will default to missing values x2d = new((/ncolors,npts/),float) do i=0,ncolors-1 ii = ind(color_list.eq.unique_colors(i)) nii = dimsizes(ii) y2d(i,0:nii-1) = y(ii) x2d(i,0:nii-1) = x(ii) delete(ii) end do ;---Start the graphics wks = gsn_open_wks("x11","xy") res = True res@gsnMaximize = True res@xyMarkLineMode = "Markers" res@xyMarker = 16 ; Filled dot res@xyMarkerColors = unique_colors plot = gsn_csm_xy(wks,x2d,y2d,res) end