GeoAxes

class GeoAxes(*args, **kwargs)[source]

Bases: PlotAxes

Axes subclass for plotting in geographic projections. Uses either cartopy or basemap as a “backend”.

Note

This subclass uses longitude and latitude as the default coordinate system for all plotting commands by internally passing transform=cartopy.crs.PlateCarree() to cartopy commands and latlon=True to basemap commands. Also, when using basemap as the “backend”, plotting is still done “cartopy-style” by calling methods from the axes instance rather than the Basemap instance.

Important

This axes subclass can be used by passing proj='proj_name' to axes-creation commands like add_axes, add_subplot, and subplots, where proj_name is a registered PROJ projection name. You can also pass a Projection or Basemap instance instead of a projection name. Alternatively, you can pass any of the matplotlib-recognized axes subclass names proj='cartopy', proj='geo', or proj='geographic' with a Projection map_projection keyword argument, or pass proj='basemap' with a Basemap map_projection keyword argument.

Parameters
  • *args – Passed to matplotlib.axes.Axes.

  • map_projection (Projection or Basemap) – The cartopy or basemap projection instance. This is passed automatically when calling axes-creation commands like add_subplot.

  • round (bool, default: rc['geo.round'] = True) – For polar cartopy axes only. Whether to bound polar projections with circles rather than squares. Note that outer gridline labels cannot be added to circle-bounded polar projections. When basemap is the backend this argument must be passed to Proj instead.

  • extent ({'globe', 'auto'}, default: rc['geo.extent'] = 'globe') – For cartopy axes only. Whether to auto adjust the map bounds based on plotted content. If 'globe' then non-polar projections are fixed with set_global, non-Gnomonic polar projections are bounded at the equator, and Gnomonic polar projections are bounded at 30 degrees latitude. If 'auto' nothing is done.

  • lonlim, latlim (2-tuple of float, optional) – For cartopy axes only. The approximate longitude and latitude boundaries of the map, applied with set_extent. When basemap is the backend this argument must be passed to Proj instead.

  • boundinglat (float, optional) – For cartopy axes only. The edge latitude for the circle bounding North Pole and South Pole-centered projections. When basemap is the backend this argument must be passed to Proj instead.

  • longrid, latgrid, grid (bool, default: rc.grid = True) – Whether to draw longitude and latitude gridlines. Use the keyword grid to toggle both at once.

  • longridminor, latgridminor, gridminor (bool, default: rc.gridminor = False) – Whether to draw “minor” longitude and latitude lines. Use the keyword gridminor to toggle both at once.

  • latmax (float, default: 80) – The maximum absolute latitude for gridlines. Longitude gridlines are cut off poleward of this value (note this feature does not work in cartopy 0.18).

  • nsteps (int, default: rc['grid.nsteps'] = 250) – For cartopy axes only. The number of interpolation steps used to draw gridlines.

  • lonlines, latlines (optional) – Aliases for lonlocator, latlocator.

  • lonlocator, latlocator (locator-spec, optional) – Used to determine the longitude and latitude gridline locations. Passed to the Locator constructor. Can be string, float, list of float, or matplotlib.ticker.Locator instance.

    For basemap or cartopy < 0.18, the defaults are 'deglon' and 'deglat', which correspond to the LongitudeLocator and LatitudeLocator locators (adapted from cartopy). For cartopy >= 0.18, the defaults are 'dmslon' and 'dmslat', which uses the same locators with dms=True. This selects gridlines at nice degree-minute-second intervals when the map extent is very small.

  • lonlines_kw, latlines_kw (optional) – Aliases for lonlocator_kw, latlocator_kw.

  • lonlocator_kw, latlocator_kw (dict-like, optional) – Keyword arguments passed to the matplotlib.ticker.Locator class.

  • lonminorlocator, latminorlocator, lonminorlines, latminorlines (optional) – As with lonlocator and latlocator but for the “minor” gridlines.

  • lonminorlines_kw, latminorlines_kw (optional) – Aliases for lonminorlocator_kw, latminorlocator_kw.

  • lonminorlocator_kw, latminorlocator_kw (optional) – As with lonlocator_kw, and latlocator_kw but for the “minor” gridlines.

  • lonlabels, latlabels, labels (str, bool, or sequence, rc['grid.labels'] = False) – Whether to add non-inline longitude and latitude gridline labels, and on which sides of the map. Use the keyword labels to set both at once. The argument must conform to one of the following options:

    • A boolean. True indicates the bottom side for longitudes and the left side for latitudes, and False disables all labels.

    • A string or sequence of strings indicating the side names, e.g. 'top' for longitudes or ('left', 'right') for latitudes.

    • A string indicating the side names with single characters, e.g. 'bt' for longitudes or 'lr' for latitudes.

    • A string matching 'neither' (no labels), 'both' (equivalent to 'bt' for longitudes and 'lr' for latitudes), or 'all' (equivalent to 'lrbt', i.e. all sides).

    • A boolean 2-tuple indicating whether to draw labels on the (bottom, top) sides for longitudes, and the (left, right) sides for latitudes.

    • A boolean 4-tuple indicating whether to draw labels on the (left, right, bottom, top) sides, as with the basemap drawmeridians and drawparallels labels keyword.

  • loninline, latinline, inlinelabels (bool, default: rc['grid.inlinelabels'] = False) – For cartopy axes only. Whether to add inline longitude and latitude gridline labels. Use the keyword inlinelabels to set both at once.

  • rotatelabels (bool, default: rc['grid.rotatelabels'] = False) – For cartopy axes only. Whether to rotate non-inline gridline labels so that they automatically follow the map boundary curvature.

  • labelpad (unit-spec, default: rc['grid.labelpad'] = 3.0) – For cartopy axes only. The padding between non-inline gridline labels and the map boundary. If float, units are points. If string, interpreted by units.

  • dms (bool, default: rc['grid.dmslabels'] = True) – For cartopy axes only. Whether the default locators and formatters should use “minutes” and “seconds” for gridline labels on small scales rather than decimal degrees. Setting this to False is equivalent to ax.format(lonlocator='deglon', latlocator='deglat') and ax.format(lonformatter='deglon', latformatter='deglat').

  • lonformatter, latformatter (formatter-spec, optional) – Formatter used to style longitude and latitude gridline labels. Passed to the Formatter constructor. Can be string, list of string, or matplotlib.ticker.Formatter instance.

    For basemap or cartopy < 0.18, the defaults are 'deglon' and 'deglat', which correspond to SimpleFormatter presets with degree symbols and cardinal direction suffixes. For cartopy >= 0.18, the defaults are 'dmslon' and 'dmslat', which uses cartopy’s LongitudeFormatter and LatitudeFormatter formatters with dms=True. This formats gridlines that do not fall on whole degrees as “minutes” and “seconds” rather than decimal degrees. Use dms=False to disable this.

  • lonformatter_kw, latformatter_kw (dict-like, optional) – Keyword arguments passed to the matplotlib.ticker.Formatter class.

  • land, ocean, coast, rivers, lakes, borders, innerborders (bool, optional) – Toggles various geographic features. These are actually the rc.land, rc.ocean, rc.coast, rc.rivers, rc.lakes, rc.borders, and rc.innerborders settings passed to context. The style can be modified using additional rc settings.

    For example, to change rc['land.color'], use ax.format(landcolor='green'), and to change rc['land.zorder'], use ax.format(landzorder=4).

  • reso ({'lo', 'med', 'hi', 'x-hi', 'xx-hi'}, optional) – For cartopy axes only. The resolution of geographic features. When basemap is the backend this must be passed to Proj instead.

  • color (color-spec, default: rc['meta.color'] = 'black') – The color for the axes edge. Propagates to labelcolor unless specified otherwise (similar to proplot.axes.CartesianAxes.format).

  • gridcolor (color-spec, default: rc['grid.color'] = 'black') – The color for the gridline labels.

  • labelcolor (color-spec, default: color or rc['grid.labelcolor'] = 'black') – The color for the gridline labels (gridlabelcolor is also allowed).

  • labelsize (unit-spec or str, default: rc['grid.labelsize'] = 'medium') – The font size for the gridline labels (gridlabelsize is also allowed). If float, units are points. If string, interpreted by units.

  • labelweight (str, default: rc['grid.labelweight'] = 'normal') – The font weight for the gridline labels (gridlabelweight is also allowed).

Other Parameters
  • title (str or sequence, optional) – The axes title. Can optionally be a sequence strings, in which case the title will be selected from the sequence according to number.

  • abc (bool or str or sequence, default: rc.abc = False) – The “a-b-c” subplot label style. Must contain the character a or A, for example 'a.', or 'A'. If True then the default style of 'a' is used. The a or A is replaced with the alphabetic character matching the number. If number is greater than 26, the characters loop around to a, …, z, aa, …, zz, aaa, …, zzz, etc. Can also be a sequence of strings, in which case the “a-b-c” label will simply be selected from the sequence according to number.

  • abcloc, titleloc (str, default: rc['abc.loc'] = 'left', rc['title.loc'] = 'center') – Strings indicating the location for the a-b-c label and main title. The following locations are valid:

    Location

    Valid keys

    center above axes

    'center', 'c'

    left above axes

    'left', 'l'

    right above axes

    'right', 'r'

    lower center inside axes

    'lower center', 'lc'

    upper center inside axes

    'upper center', 'uc'

    upper right inside axes

    'upper right', 'ur'

    upper left inside axes

    'upper left', 'ul'

    lower left inside axes

    'lower left', 'll'

    lower right inside axes

    'lower right', 'lr'

  • abcborder, titleborder (bool, default: rc['abc.border'] = True and rc['title.border'] = True) – Whether to draw a white border around titles and a-b-c labels positioned inside the axes. This can help them stand out on top of artists plotted inside the axes.

  • abcbbox, titlebbox (bool, default: rc['abc.bbox'] = False and rc['title.bbox'] = False) – Whether to draw a white bbox around titles and a-b-c labels positioned inside the axes. This can help them stand out on top of artists plotted inside the axes.

  • abc_kw, title_kw (dict-like, optional) – Additional settings used to update the a-b-c label and title with text.update().

  • titlepad (float, default: rc['title.pad'] = 5.0) – The padding for the inner and outer titles and a-b-c labels. If float, units are points. If string, interpreted by units.

  • titleabove (bool, default: rc['title.above'] = True) – Whether to try to put outer titles and a-b-c labels above panels, colorbars, or legends that are above the axes.

  • abctitlepad (float, default: rc['abc.titlepad'] = 4.0) – The horizontal padding between a-b-c labels and titles in the same location. If float, units are points. If string, interpreted by units.

  • ltitle, ctitle, rtitle, ultitle, uctitle, urtitle, lltitle, lctitle, lrtitle (str or sequence, optional) – Shorthands for the below keywords.

  • lefttitle, centertitle, righttitle, upperlefttitle, uppercentertitle, upperrighttitle, lowerlefttitle, lowercentertitle, lowerrighttitle (str or sequence, optional) – Additional titles in specific positions (see title for details). This works as an alternative to the ax.format(title='Title', titleloc=loc) workflow and permits adding more than one title-like label for a single axes.

  • a, alpha, fc, facecolor, ec, edgecolor, lw, linewidth, ls, linestyle (default: rc['axes.alpha'] = None, rc['axes.facecolor'] = 'white', rc['axes.edgecolor'] = 'black', rc['axes.linewidth'] = 0.6, '-') – Additional settings applied to the background patch, and their shorthands. Their defaults values are the 'axes' properties.

  • rc_mode (int, optional) – The context mode passed to context.

  • rc_kw (dict-like, optional) – An alternative to passing extra keyword arguments. See below.

  • **kwargs – Remaining keyword arguments are passed to matplotlib.axes.Axes. Keyword arguments that match the name of an rc setting are passed to proplot.config.Configurator.context and used to update the axes. If the setting name has “dots” you can simply omit the dots. For example, abc='A.' modifies the rc.abc setting, titleloc='left' modifies the rc['title.loc'] setting, gridminor=True modifies the rc.gridminor setting, and gridbelow=True modifies the rc['grid.below'] setting. Many of the keyword arguments documented above are internally applied by retrieving settings passed to context.

Attributes Summary

gridlines_major

The cartopy Gridliner used for major gridlines or a 2-tuple containing the (longitude, latitude) major gridlines returned by basemap's drawmeridians and drawparallels.

gridlines_minor

The cartopy Gridliner used for minor gridlines or a 2-tuple containing the (longitude, latitude) minor gridlines returned by basemap's drawmeridians and drawparallels.

projection

The cartopy Projection or basemap Basemap instance associated with this axes.

Methods Summary

format()

Modify map limits, longitude and latitude gridlines, geographic features, and more.