descartes
Use geometric objects as matplotlib paths and patches
Decision gist · record as of 2026-08-14
Yes, if you are working with geometric objects and matplotlib in a stable codebase where you do not expect frequent updates. The package is mature and does one thing well, but its abandonment since 2017 means you should verify compatibility with your current matplotlib and Python versions before adopting it in new projects.AI-flagged interpretation of the facts on this page — verify before relying
Before you install
- Requires matplotlib; numpy is an implicit dependency.
- Shapely 1.2+ is optional but typically used for geometric operations.
- Low install friction with pure Python wheels available.
License · maintenance · safety
BSD (permissive) — BSD license (permissive) places no significant restrictions on use, modification, or distribution in most contexts.
last release 2017-01-17 (3496 days)
0 known vulnerabilities (OSV.dev, 2026-08-14) · 676,373 downloads/mo, #5,383 on PyPI
Alternatives
Verify before relying
pip install descartes matplotlib
from matplotlib import pyplot
from descartes import PolygonPatch
patch = PolygonPatch({'type': 'Polygon', 'coordinates': [[(0, 0), (1, 0), (1, 1), (0, 1), (0, 0)]]}, fc='blue', alpha=0.5)
ax = pyplot.gca()
ax.add_patch(patch)
pyplot.show()- Whether the package works reliably with current versions of matplotlib and numpy given its 2017 release date.
- Compatibility with modern Python versions beyond what classifiers declare.
- Whether active alternatives exist for this use case in the current ecosystem.
What it is and what it does
Descartes is an adapter layer that converts geometric objects and GeoJSON-like dictionaries into matplotlib patch objects for visualization. It bridges geometric computation and matplotlib's rendering system, allowing you to plot spatial data directly without manual coordinate extraction. The package accepts objects with a `__geo_interface__` property or compatible geometric structures and converts them into matplotlib patches that can be added to axes.
The package is stable and has been in production use since 2010, but it is no longer actively maintained—the last release was in 2017. It has no known security vulnerabilities and carries a permissive BSD license. Its single runtime dependency is matplotlib, with numpy as an implicit requirement.
Use it for
- Plot geometric objects directly on matplotlib figures without manual coordinate extraction.
- Visualize GeoJSON geometries in Python by converting them to matplotlib patches for display.
- Create spatial plots where you want to leverage geometric operations and matplotlib's rendering.
- Render transformed geometries as colored patches with transparency and styling.
- Build exploratory plots of spatial data without writing custom coordinate-to-patch conversion code.
Worth the install?
AI-flagged interpretation of the facts on this page. Verify before relying on it.
Yes, if you are working with geometric objects and matplotlib in a stable codebase where you do not expect frequent updates.
The package is mature and does one thing well, but its abandonment since 2017 means you should verify compatibility with your current matplotlib and Python versions before adopting it in new projects.
Install
descartes on PyPI
Before you install
Low install friction with pure Python wheels available. However, the package is abandoned—last release was in 2017, over 3496 days ago. No recent maintenance or updates; use only if existing functionality meets your needs.
Requires matplotlib; numpy is an implicit dependency. Shapely 1.2+ is optional but typically used for geometric operations.
License in practice
BSD license (permissive) places no significant restrictions on use, modification, or distribution in most contexts.
Quickstart
pip install descartes matplotlib
from matplotlib import pyplot
from descartes import PolygonPatch
patch = PolygonPatch({'type': 'Polygon', 'coordinates': [[(0, 0), (1, 0), (1, 1), (0, 1), (0, 0)]]}, fc='blue', alpha=0.5)
ax = pyplot.gca()
ax.add_patch(patch)
pyplot.show()
Verify before relying
- Whether the package works reliably with current versions of matplotlib and numpy given its 2017 release date.
- Compatibility with modern Python versions beyond what classifiers declare.
- Whether active alternatives exist for this use case in the current ecosystem.
Package facts
| License | BSD permissive |
| Python support | Not specified |
| Install friction | Low. Pure-Python wheel |
| Runtime dependencies | 1 packagematplotlib |
| Maintenance | Abandoned 3,496 days since the last release |
| First released | |
| Downloads | 676,373 / month, #5,383 on PyPI 30-day window, as of 2026-08-14 |
| Known vulnerabilities | None known OSV.dev, checked 2026-08-14 |
| Classifiers | Development Status :: 5 - Production/StableIntended Audience :: DevelopersIntended Audience :: Science/ResearchLicense :: OSI Approved :: BSD LicenseOperating System :: OS IndependentProgramming Language :: PythonProgramming Language :: Python :: 2Programming Language :: Python :: 3Topic :: Scientific/Engineering :: GIS |
Evidence: descartes-1.1.0-py2-none-any.whl; descartes-1.1.0-py3-none-any.whl
Tags
Let your AI agent find packages like this
Example. Real query, live index.
You found this page by searching. An agent finds it by wishing: SkillFed indexes 14,416 PyPI packages by what they can do, searchable in plain language.
wish › “geometry matplotlib patches”
- descartesConverts geometric objects and GeoJSON-like data into matplotlib…
- timpleTimple extends Matplotlib with locators and formatters for plotting…
- matplotlib-vennPlots area-weighted two- and three-circle Venn diagrams using…
Give your agent the search over MCP, or paste the wish link into any chat.
More GIS packages
Shapely provides Python tools for creating, manipulating, and analyzing 2D geometric objects (points, lines, polygons) using the GEOS library, with both scalar and vectorized NumPy-based operations.
pyproj provides a Python interface to PROJ, enabling cartographic projections and coordinate system transformations for geospatial applications.
GeoPandas extends pandas DataFrames to handle geographic data, combining pandas operations with shapely geometry and spatial analysis capabilities that would otherwise require a spatial database.
Install it if you work with geographic data in Python and want to avoid setting up a spatial database or learning a separate GIS tool.
geopy is a Python client for geocoding and distance calculation that converts addresses to coordinates and vice versa using multiple web-based geocoding services, and computes geodesic and great-circle distances between geographic points.
Install it if you need geocoding or distance calculations in your application.
Pyogrio provides fast, bulk-oriented read and write access to vector spatial data formats (Shapefile, GeoPackage, GeoJSON, etc.) via GDAL/OGR bindings, typically for use with GeoPandas GeoDataFrames.
h3 provides Python bindings to Uber's H3 geospatial indexing library, converting geographic coordinates into hierarchical hexagonal grid cells and performing spatial operations on them.
See also matplotlib-venn · Cartopy · antimeridian · shapely-polyskel · osm2geojson · pygeoif · geomet · highcharts-maps · pygeos