Cartopy map gridlines and tick labels

The Gridliner instance, often created by calling the cartopy.mpl.geoaxes.GeoAxes.gridlines() method on a cartopy.mpl.geoaxes.GeoAxes instance, has a variety of attributes which can be used to determine draw time behaviour of the gridlines and labels.

Important

The current Gridliner interface is likely to undergo a significant change in the versions following v0.6 in order to fix some of the underying limitations of the current implementation.

class cartopy.mpl.gridliner.Gridliner(axes, crs, draw_labels=False, xlocator=None, ylocator=None, collection_kwargs=None)[source]

Object used by cartopy.mpl.geoaxes.GeoAxes.gridlines() to add gridlines and tick labels to a map.

Parameters:
  • axes – The cartopy.mpl.geoaxes.GeoAxes object to be drawn on.
  • crs – The cartopy.crs.CRS defining the coordinate system that the gridlines are drawn in.
  • draw_labels (optional) – Toggle whether to draw labels. For finer control, attributes of Gridliner may be modified individually. Defaults to False.
  • xlocator (optional) – A matplotlib.ticker.Locator instance which will be used to determine the locations of the gridlines in the x-coordinate of the given CRS. Defaults to None, which implies automatic locating of the gridlines.
  • ylocator (optional) – A matplotlib.ticker.Locator instance which will be used to determine the locations of the gridlines in the y-coordinate of the given CRS. Defaults to None, which implies automatic locating of the gridlines.
  • collection_kwargs (optional) – Dictionary controlling line properties, passed to matplotlib.collections.Collection. Defaults to None.
collection_kwargs = None

A dictionary passed through to matplotlib.collections.LineCollection on grid line creation.

n_steps = None

The number of interpolation points which are used to draw the gridlines.

xformatter = None

The Formatter to use for the x labels.

xlabel_artists = None

The x labels which were created at draw time.

xlabel_style = None

A dictionary passed through to ax.text on x label creation for styling of the text labels.

xlabels_bottom = None

Whether to draw labels on the bottom of the map.

xlabels_top = None

Whether to draw labels on the top of the map.

xline_artists = None

The x gridlines which were created at draw time.

xlines = None

Whether to draw the x gridlines.

xlocator = None

The Locator to use for the x gridlines and labels.

xpadding = None

The padding from the map edge to the x labels in points.

yformatter = None

The Formatter to use for the y labels.

ylabel_artists = None

The y labels which were created at draw time.

ylabel_style = None

A dictionary passed through to ax.text on y label creation for styling of the text labels.

ylabels_left = None

Whether to draw labels on the left hand side of the map.

ylabels_right = None

Whether to draw labels on the right hand side of the map.

yline_artists = None

The y gridlines which were created at draw time.

ylines = None

Whether to draw the y gridlines.

ylocator = None

The Locator to use for the y gridlines and labels.

ypadding = None

The padding from the map edge to the y labels in points.

The following contrived example makes use of many of the features of the Gridliner class to produce customized gridlines and tick labels:

import matplotlib.pyplot as plt
import matplotlib.ticker as mticker
import cartopy.crs as ccrs

from cartopy.mpl.gridliner import LONGITUDE_FORMATTER, LATITUDE_FORMATTER


ax = plt.axes(projection=ccrs.Mercator())
ax.coastlines()

gl = ax.gridlines(crs=ccrs.PlateCarree(), draw_labels=True,
                  linewidth=2, color='gray', alpha=0.5, linestyle='--')
gl.xlabels_top = False
gl.ylabels_left = False
gl.xlines = False
gl.xlocator = mticker.FixedLocator([-180, -45, 0, 45, 180])
gl.xformatter = LONGITUDE_FORMATTER
gl.yformatter = LATITUDE_FORMATTER
gl.xlabel_style = {'size': 15, 'color': 'gray'}
gl.xlabel_style = {'color': 'red', 'weight': 'bold'}

plt.show()

(Source code)

../_images/gridliner-1.png