Python AGPL-3.0

prettymaps

Draw pretty maps from OpenStreetMap data! Built with osmnx +matplotlib + shapely

M

marceloprates

Dernière activité 30 juil. 2026
marceloprates/prettymaps

14,3 k

étoiles

732

forks

24

issues ouvertes

cartographygenerative-artjupyter-notebookmapsmatplotlibopenstreetmappython

Ce README est souvent en anglais.

prettymaps

A minimal Python library to draw customized maps from OpenStreetMap created using the osmnx, matplotlib, shapely and vsketch packages.

Docs PyPI Python License

This work is licensed under a GNU Affero General Public License v3.0 (you can make commercial use, distribute and modify this project, but must disclose the source code with the license and copyright notice)

Note about crediting and NFTs:

  • Please keep the printed message on the figures crediting my repository and OpenStreetMap (mandatory by their license).
  • I am personally against NFTs for their environmental impact, the fact that they're a giant money-laundering pyramid scheme and the structural incentives they create for theft in the open source and generative art communities.
  • I do not authorize in any way this project to be used for selling NFTs, although I cannot legally enforce it. Respect the creator.
  • The AeternaCivitas and geoartnft projects have used this work to sell NFTs and refused to credit it. See how they reacted after being exposed: AeternaCivitas, geoartnft.
  • I have closed my other generative art projects on Github and won't be sharing new ones as open source to protect me from the NFT community.

Buy Me a Coffee at ko-fi.com

As seen on Hacker News:

Installation

Install locally:

Install prettymaps with:

pip install prettymaps

Install on Google Colaboratory:

Install prettymaps with:

!pip install -e "git+https://github.com/marceloprates/prettymaps#egg=prettymaps"

Then restart the runtime (Runtime -> Restart Runtime) before importing prettymaps

Run front-end

After prettymaps is installed, you can run the front-end (streamlit) application from the prettymaps repository using:

streamlit run app.py

Tutorial

The full tutorial is at docs/tutorial.md — a markdown walkthrough with rendered images, the [Plot] dataclass fields, the layers/style parameters, presets, multiplot, hillshade, and keypoints.

Heerhugowaard sample

Quick start:

import prettymaps

plot = prettymaps.plot('Stad van de Zon, Heerhugowaard, Netherlands')
Resource Where to find it
Full tutorial (markdown + images) docs/tutorial.md
Interactive marimo notebook (runnable) notebooks/tutorial.py
Open in Google Colab Open in Colab
Streamlit front-end streamlit run app.py

Run the tutorial locally (marimo)

# Install marimo (already in requirements.txt)
pip install marimo

# Open the notebook in your browser
marimo edit notebooks/tutorial.py

Customizing parameters

The most important prettymaps.plot() parameters are:

  • layers — dict of OpenStreetMap layers to fetch.
  • style — dict of matplotlib style parameters per layer.
  • preset — load a JSON preset (e.g. 'default', 'minimal', 'macao', 'tijuca').
  • circle / radius / dilate — boundary shape.

plot is a dataclass with geodataframes (per-layer GeoDataFrames), fig, and ax.

plot = prettymaps.plot(
    'Praça Ferreira do Amaral, Macau',
    circle=True,
    radius=1100,
    layers={
        "water": {"tags": {"natural": ["water", "bay"]}},
        "building": {"tags": {"building": True}},
    },
    style={
        "water": {"fc": "#a1e3ff", "ec": "#2F3737"},
        "building": {"palette": ["#FFC857", "#E9724C", "#C5283D"]},
    },
)

Macau, custom parameters

See docs/tutorial.md for the full set of examples (Macau, Bom Fim, mosaic, Barcelona plotter, Tijuca, multiplot, hillshade, Garopaba keypoints).

Projets similaires

🖼️ Create beautiful maps from OpenStreetMap data in a streamlit webapp

Pythonappartcartography
Cchrieke
2,8 k étoiles455

Transform your favorite cities into beautiful, minimalist designs. MapToPoster lets you create and export visually striking map posters with code.

Pythondesignmapsmatplotlib-pyplot
Ooriginalankur
14,2 k étoiles1,3 k

Cartopy - a cartographic python library with matplotlib support

Pythoncartopygeometrymaps
SSciTools
1,6 k étoiles399