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://farm5.static.flickr.com/4027/4501956705_637a74a404_o_d.png

Requires: matplotlib, numpy, and optionally Shapely 1.2.

Example:

from matplotlib import pyplot
from shapely.geometry import LineString

from descartes.patch import PolygonPatch

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

fig = pyplot.figure(1, figsize=(7.5, 3), dpi=180)

# 1
ax = fig.add_subplot(121)

dilated = line.buffer(0.5)
patch1 = PolygonPatch(dilated, facecolor='#99ccff', edgecolor='#6699cc')
ax.add_patch(patch1)

x, y = line.xy
ax.plot(x, y, color='#999999')

ax.set_xlim(-1, 4)
ax.set_ylim(-1, 3)

#2
ax = fig.add_subplot(122)

patch2a = PolygonPatch(dilated, facecolor='#cccccc', edgecolor='#999999')
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, facecolor='#99ccff', edgecolor='#6699cc')
ax.add_patch(patch2b)

ax.set_xlim(-1, 4)
ax.set_ylim(-1, 3)

fig.subplots_adjust(0.0, 0.0, 1.0, 1.0, 0.1)
fig.savefig('buffering.png')

See also: examples/patches.py.

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-0.1.tar.gz (2.9 kB view details)

Uploaded Source

File details

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

File metadata

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

File hashes

Hashes for descartes-0.1.tar.gz
Algorithm Hash digest
SHA256 85453d07ced4a35bb2f6ee416af5dbbcdf8f596208decaca10ac393108d29681
MD5 1818d3280759c915d5fa1eefbbf93393
BLAKE2b-256 f577214fb0b9eb260b8c4d1b6b5cf26e6c2a86b3916f24e49c92023ef2c99247

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