You can use the NCL table of predefined markers, or you can define your own using the NhlNewMarker function.

Example pages containing:
tips |
resources |
functions/procedures
NCL Graphics: Scatter Plots


The appearance of the markers are changed using xyMarker to get a filled dot, xyMarkerColor to change the color, and xyMarkerSizeF to change the size.
A Python version of this projection is available here.


The second frame of this example shows how you can clip the markers by setting vpClipOn to True.


In the second frame, the map is zoomed further in, and the markers are "attached" to the map using gsn_add_polymarker. This means you won't see the markers until you draw the map. This is the preferred method, especially if you plan to resize or panel this plot later.
A Python version of this projection is available here.

The function regline calculates the least squared regression for a one dimensional array.
A Python version of this projection is available here.

The function nice_mnmxintvl is used to create a nice set of equally-spaced levels through the data. You can then create a 2D array, where the leftmost dimension represents each level and the rightmost dimension the number of values grouped in that level.
xyMarkers and xyMarkerColors are used to to define different colors and markers for each group.
A Python version of this projection is available here.

The gsn_add_polymarker function is called twice for each range of values: once to draw a filled dot (gsMarkerIndex=16) and one to draw an outlined dot (gsMarkerIndex=4). This gives the appearance of outlined markers. The marker sizes (gsMarkerSizeF) range in value from 0.025 to 0.075.
The random_uniform function is used to generate random data.
A Python version of this projection is available here.

Only the second frame is shown here. Notice how markers that are obscured in the first version are visible in the second plot.

The original version of example was contributed by Larry McDaniel of IMAGe / NCAR. It was pared down significantly to remove all the data processing calls.



You then set tfDoNDCOverlay to True to make sure that when the blank plot is overlaid on the map plot using the overlay procedure, it simply lines up the corners of the two plots and does the draw.
In this example, the blank plot goes from 0,ny+1 in the Y direction, and 0,nx+1 in the x direction. This corresponds to the following lat/lon locations:
x = 0 --> lon = -180 x = nx+1 --> lon = 180 y = 0 --> lon = -90 y = ny+1 --> lon = 90



Based on an ncl-talk question (11/2016) by Rashed Mahmood. He 'self-answered' his question with some example code. Alan Brammer (U. Albany) created the x and y separate procedures shown in the script.

In order to draw the white grid lines under the dots, the tmGridDrawOrder resource must be set to "PreDraw". This resource was added in NCL V6.5.0. If you try to run this script with NCL V6.4.0 or earlier, the grid lines will show up on top of the filled dots and you'll get a warning that the resource is not valid.
There's quite a bit of customization going on with the tickmark labels, in order to turn them on and off for various plots.