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

Uploaded Source

Built Distributions

descartes-1.1.0-py3-none-any.whl (5.8 kB view details)

Uploaded Python 3

descartes-1.1.0-py2-none-any.whl (5.8 kB view details)

Uploaded Python 2

File details

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

File metadata

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

File hashes

Hashes for descartes-1.1.0.tar.gz
Algorithm Hash digest
SHA256 135a502146af5ed6ff359975e2ebc5fa4b71b5432c355c2cafdc6dea1337035b
MD5 ac608090f3c9f6e0ce856fdc29944096
BLAKE2b-256 1d6f81735a30432b74f41db6754dd13869021ccfed3088d1cf7a6cfc0af9ac49

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for descartes-1.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 4c62dc41109689d03e4b35de0a2bcbdeeb81047badc607c4415d5c753bd683af
MD5 eda7c3b1cef798ee4878d96c718b2cef
BLAKE2b-256 e5b61ed2eb03989ae574584664985367ba70cd9cf8b32ee8cad0e8aaeac819f3

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for descartes-1.1.0-py2-none-any.whl
Algorithm Hash digest
SHA256 b7e412e7e6e294412f1d0f661f187babc970088c2456089e6801eebb043c2e1b
MD5 fe9c91d7ca7f24d84ad0aa3eb8087868
BLAKE2b-256 e729b23b57c92a1cf58da25070c10cab90fb38de22523ef7bdc76acdad717645

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