Skip to main content

Use geometric objects as matplotlib paths and patches

Project description

Use Shapely or GeoJSON-like geometric objects as matplotlib paths and patches

http://farm4.static.flickr.com/3662/4555372019_9bbed1f956_o_d.png

Requires: matplotlib, numpy, and optionally Shapely 1.2+.

Example:

from matplotlib import pyplot
from shapely.geometry import LineString
from descartes import PolygonPatch

BLUE = '#6699cc'
GRAY = '#999999'

def plot_line(ax, ob):
    x, y = ob.xy
    ax.plot(x, y, color=GRAY, linewidth=3, solid_capstyle='round', zorder=1)

line = LineString([(0, 0), (1, 1), (0, 2), (2, 2), (3, 1), (1, 0)])

fig = pyplot.figure(1, figsize=(10, 4), dpi=180)

# 1
ax = fig.add_subplot(121)

plot_line(ax, line)

dilated = line.buffer(0.5)
patch1 = PolygonPatch(dilated, fc=BLUE, ec=BLUE, alpha=0.5, zorder=2)
ax.add_patch(patch1)

#2
ax = fig.add_subplot(122)

patch2a = PolygonPatch(dilated, fc=GRAY, ec=GRAY, alpha=0.5, zorder=1)
ax.add_patch(patch2a)

eroded = dilated.buffer(-0.3)

# GeoJSON-like data works as well

polygon = eroded.__geo_interface__
# >>> geo['type']
# 'Polygon'
# >>> geo['coordinates'][0][:2]
# ((0.50502525316941682, 0.78786796564403572), (0.5247963548222736, 0.8096820147509064))
patch2b = PolygonPatch(polygon, fc=BLUE, ec=BLUE, alpha=0.5, zorder=2)
ax.add_patch(patch2b)

pyplot.show()

See also: examples/patches.py.

Descartes is not associated with the identically named and apparently defunct project at http://descartes.sourceforge.net/.

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

descartes-1.0.2.tar.gz (3.3 kB view details)

Uploaded Source

Built Distributions

descartes-1.0.2-py3-none-any.whl (5.6 kB view details)

Uploaded Python 3

descartes-1.0.2-py2-none-any.whl (5.6 kB view details)

Uploaded Python 2

File details

Details for the file descartes-1.0.2.tar.gz.

File metadata

  • Download URL: descartes-1.0.2.tar.gz
  • Upload date:
  • Size: 3.3 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No

File hashes

Hashes for descartes-1.0.2.tar.gz
Algorithm Hash digest
SHA256 078ef4b50baeafd0cbde538750911ca60161829a8696ae2c7e5a6a1071af1257
MD5 2af859c63f73ef852c691f46a06e5938
BLAKE2b-256 52656078084b6b84b8c87730f9ebf825fbcd7f1ba7bf383fbb6f0a8a6d2419af

See more details on using hashes here.

File details

Details for the file descartes-1.0.2-py3-none-any.whl.

File metadata

File hashes

Hashes for descartes-1.0.2-py3-none-any.whl
Algorithm Hash digest
SHA256 b8616aae580459cddab6366740efaf95b6be065fb5a60cb4789f21f67e38a946
MD5 925e52664d8acf9539dbf2279833d204
BLAKE2b-256 f2dd163ffd90ca112e57e950d88923f6e753b29fa19b00cd0e14633e5607547c

See more details on using hashes here.

File details

Details for the file descartes-1.0.2-py2-none-any.whl.

File metadata

File hashes

Hashes for descartes-1.0.2-py2-none-any.whl
Algorithm Hash digest
SHA256 ed43c2f0b590df9c74c6fb6d4f9c8d489942823e8b395e519c572536f804b1e5
MD5 26b998c5a2cb3830f1071caeef093eb8
BLAKE2b-256 12e793980931991f2135296f31934880be7c4ec3d520704a89db65bd8d5d8333

See more details on using hashes here.

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