Skip to main content

Contour calculation with Matplotlib.

Project description

contours - contour calculation with matplotlib

The contours package exposes Matplotlib’s contour generators to the user providing an equivalent of MATLAB’s contourc function. This is done for grids (including curvilinear) as well as unstructured data via Delaunay triangulation (FUTURE).

Regular contours can be returned as NumPy arrays or as Shapely LineStrings and LinearRings. Filled contours can be returned as NumPy arrays or as Shapely Polygons.

Contour calculation without plotting is currently an open issue #367 for Matplotlib. In that discussion, the type of hackery done in this library is discouraged by the Matplotlib developers. As of this writing there has been no decision as to whether exposing contour calculations is a feature that should be included in Matplotlib or not. If such a refactoring in Matplotlib ever takes place, this library will be refactored to avoid using Matplotlib’s internal components.


  • Filled and non-filled contours.

  • Contours on regular grids.

  • TODO Contours on unstructured data.


A contrived example using QuadContourGenerator to compute the area and circumference of a circle and a ring.

>>> from contours.core import shapely_formatter as shapely_fmt
>>> from contours.quad import QuadContourGenerator
>>> import numpy as np
>>> x = np.arange(-1, 1+0.01, 0.01)
>>> y = np.arange(-1, 1+0.01, 0.01)
>>> z = np.sqrt(x[:, np.newaxis]**2 + y[np.newaxis, :]**2)
>>> c = QuadContourGenerator.from_rectilinear(x, y, z, shapely_fmt)
>>> contour = c.filled_contour(max=1.0)
>>> print('Area: {:0.2f}'.format(contour[0].area))
Area: 3.14
>>> print('Length: {:0.2f}'.format(contour[0].length))
Length: 6.28
>>> contour = c.filled_contour(min=0.5, max=1.0)
>>> print('Area: {:0.2f}'.format(contour[0].area))
Area: 2.36
>>> print('Length: {:0.2f}'.format(contour[0].exterior.length))
Length: 6.28
>>> print('Length: {:0.2f}'.format(contour[0].interiors[0].length))
Length: 3.14


The contours module was written by Michael R. Shannon (@mrshannon) <> in 2017.

It is maintained by:



Project details

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

contours-0.0.2.tar.gz (7.4 kB view hashes)

Uploaded Source

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page