Skip to main content
Archived

This project has been archived by its maintainers, and is no longer receiving any updates.

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/.

Metadata

Release files for descartes 1.0.2

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for descartes 1.0.2
File Size Uploaded
descartes-1.0.2.tar.gz 3.3 kB Details

Built distributions (wheels)

Table of built distributions (wheels) for descartes 1.0.2
File Interpreter ABI Platform
descartes-1.0.2-py3-none-any.whl Python 3 none any Details
descartes-1.0.2-py2-none-any.whl Python 2 none any Details

Total release size: 14.5 kB

Release files / descartes-1.0.2.tar.gz

Download URL descartes-1.0.2.tar.gz
Size 3.3 kB
Tags Source
SHA-256 checksum
How to use checksums
078ef4b50baeafd0cbde538750911ca60161829a8696ae2c7e5a6a1071af1257
BLAKE2b-256 checksum
How to use checksums
52656078084b6b84b8c87730f9ebf825fbcd7f1ba7bf383fbb6f0a8a6d2419af
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No

Release files / descartes-1.0.2-py3-none-any.whl

Download URL descartes-1.0.2-py3-none-any.whl
Size 5.6 kB
Tags Python 3
SHA-256 checksum
How to use checksums
b8616aae580459cddab6366740efaf95b6be065fb5a60cb4789f21f67e38a946
BLAKE2b-256 checksum
How to use checksums
f2dd163ffd90ca112e57e950d88923f6e753b29fa19b00cd0e14633e5607547c
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No

Release files / descartes-1.0.2-py2-none-any.whl

Download URL descartes-1.0.2-py2-none-any.whl
Size 5.6 kB
Tags Python 2
SHA-256 checksum
How to use checksums
ed43c2f0b590df9c74c6fb6d4f9c8d489942823e8b395e519c572536f804b1e5
BLAKE2b-256 checksum
How to use checksums
12e793980931991f2135296f31934880be7c4ec3d520704a89db65bd8d5d8333
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page