// the find
python-visualization/folium
Python Data. Leaflet.js Maps.
folium is a Python wrapper that generates Leaflet.js maps as HTML files or notebook outputs. You write Python, it writes JavaScript — useful for data scientists who want interactive maps without touching JS. It's been around since ~2013 and is the go-to tool in the Jupyter ecosystem for geographic visualization.
Works without a server — output is a self-contained HTML file you can email or host statically. GeoJSON and GeoPandas integration is first-class; choropleth maps from a DataFrame take maybe 10 lines. The plugin ecosystem covers a lot of ground: heatmaps, marker clustering, draw tools, side-by-side comparison, time-slider choropleths. The test suite includes Selenium screenshot snapshots, which is the right call for a library where the output is visual.
Performance falls apart with large datasets — dumping 50k points into a GeoJSON layer means 50k DOM elements; there's no built-in tiling or clustering at the data level, only the marker-cluster plugin which helps but doesn't scale to millions of points. The abstraction leaks badly when you need to do anything non-standard: you end up writing raw JavaScript strings inside Python, which is fragile and untestable. No reactive updates — the map is generated once and is static; if you want to filter or re-render, you regenerate the whole thing. Leaflet itself is pinned to whatever version folium bundles, so you can't easily pull in a newer Leaflet or its extensions independently.