PyNGL Home > Functions > Graphics routines


Adds a polygon to an existing plot.


pgon = Ngl.add_polygon(wks, plot, x, y, res=None)



The identifier returned from calling Ngl.open_wks.


The id of the plot which you want to add the polygon to.

x, y

One-dimensional (masked) NumPy arrays or Python lists containing the x, y coordinates of the polygon.


An (optional) instance of the Resources class having GraphicStyle resources as attributes.

Return value


A PlotId representing the polygon added.


This function adds a polygon to the requested plot. plot is the value returned from a previous call to one of the PyNGL plotting functions, like Ngl.xy, Ngl.contour_map, etc. x and y are 1-dimensional arrays (these can be Python lists or tuples, or NumPy arrays) defining the coordinates of the polygon, and resources can optionally contain an unlimited number of attributes that are GraphicStyle resource names and their values. Note that x and y must be in the same data space as the data in plot.

Note: unlike Ngl.polygon, this function does not actually draw the polygon. It only attaches a polygon to the given plot. You need to call Ngl.draw on plot in order to see the plot with the polygon added.

If you plan to resize your plot or use it in a call to Ngl.panel, then it is better to use this function (rather than Ngl.polygon) because the polygon will automatically get resized with the plot.

If you call this function multiple times, you should use a unique variable to hold the id returned.

There is no automatic handling of fill values. See the FAQ, How do I set a missing value for my data?

As of version 1.3.0, there is automatic handling of missing data if one or both of the input arrays are masked arrays. Missing data will not be plotted.

See Also

Ngl.polygon, Ngl.polygon_ndc, Ngl.add_polyline, Ngl.add_polymarker


See the example and its its output.