A minimal Python library to draw customized, stylized maps from OpenStreetMap data using osmnx, matplotlib, and shapely.
prettymaps is a Python library that generates stylized maps from OpenStreetMap data. It fetches geographic features like buildings, streets, and water bodies, and applies customizable visual styles using matplotlib, allowing users to create artistic and informative map visualizations with minimal code.
Python developers, data visualization enthusiasts, generative artists, and designers who want to create custom map illustrations for projects, presentations, or artistic works.
It simplifies the process of fetching and styling OpenStreetMap data into a single, intuitive Python library, offering extensive customization through layers and presets without requiring deep GIS expertise.
Draw pretty maps from OpenStreetMap data! Built with osmnx +matplotlib + shapely
Open-Awesome is built by the community, for the community. Submit a project, suggest an awesome list, or help improve the catalog on GitHub.
Allows granular control over layers and styles using OSM tags and matplotlib parameters, as shown in the extensive layer and style dictionary examples in the README.
Enables saving and sharing visual styles via JSON presets (e.g., 'minimal', 'barcelona'), facilitating consistent designs and quick experimentation across projects.
Offers a dedicated 'plotter' mode that exports SVG files compatible with physical pen plotters using vsketch integration, ideal for generative art and physical media.
Provides access to underlying GeoDataFrames for each layer, allowing for additional geographic analysis or custom visualizations beyond the built-in plotting.
Fetching geodataframes from OpenStreetMap can take several seconds (e.g., 14+ seconds in examples), making it impractical for dynamic or real-time applications.
Requires understanding of both OSM data structure (tags) and matplotlib styling, with no GUI, leading to a steep learning curve for non-technical users.
Generates only static images or SVGs with no built-in interactivity, restricting use in web-based or interactive mapping scenarios without additional tools.
Relies on multiple large libraries (osmnx, matplotlib, shapely, vsketch), increasing setup complexity and potential version conflicts in production environments.