Need help with mplleaflet?
Click the “chat” button below for chat support from the developer who created it, or find similar developers for support.

About the developer

jwass
458 Stars 64 Forks BSD 3-Clause "New" or "Revised" License 84 Commits 42 Opened issues

Description

Easily convert matplotlib plots from Python into interactive Leaflet web maps.

Services available

!
?

Need anything else?

Contributors list

# 88,562
imagery
Shell
hadoop
presto
51 commits
# 22,521
Python
pandas
Deploye...
Iris
5 commits
# 365,409
cython
gdal
Shell
gis
3 commits
# 34,335
Python
Shell
CSS
2 commits
# 624,020
Python
HTML
1 commit
# 504,576
CSS
Shell
HTML
1 commit
# 465,885
Python
HTML
1 commit
# 77,707
Scala
jupyter
SQL
Apache ...
1 commit
# 234,737
HTML
indexed...
markers
CSS
1 commit

mplleaflet

mplleaflet is a Python library that converts a matplotlib plot into a webpage containing a pannable, zoomable Leaflet map. It can also embed the Leaflet map in an IPython notebook. The goal of mplleaflet is to enable use of Python and matplotlib for visualizing geographic data on slippy maps without having to write any Javascript or HTML. You also don't need to worry about choosing the base map content i.e., coastlines, roads, etc.

Only one line of code is needed to convert a plot into a web map.

mplleaflet.show()

The library is heavily inspired by mpld3 and uses mplexporter to do most of the heavy lifting to walk through Figure objects.

Examples

Basic usage

The simplest use is to just create your plot using matplotlib commands and call

mplleaflet.show()
.
>>> import matplotlib.pyplot as plt
... # Load longitude, latitude data
>>> plt.hold(True)
# Plot the data as a blue line with red squares on top
# Just plot longitude vs. latitude
>>> plt.plot(longitude, latitude, 'b') # Draw blue line
>>> plt.plot(longitude, latitude, 'rs') # Draw red squares

matplotlib x,y plot

Normally, displaying data as longitude, latitude will cause a cartographer to cry. That's totally fine with mplleaflet, Leaflet will project your data properly.

# Convert to interactive Leaflet map
>>> import mplleaflet
>>> mplleaflet.show()

Click to view final web page

Leaflet map preview

Disclaimer: Displaying data in spherical mercator might also cause a cartographer to cry.

show()
allows you to specify different tile layer URLs, CRS/EPSG codes, output files, etc.

IPython Notebook embedding

Just use

mplleaflet.display()
to embed the interactive Leaflet map in an IPython notebook. Click here to see a live example.

Other examples

Why mplleaflet?

Other Python libraries, basemap and folium, exist to create maps in Python. However mplleaflet allows you to leverage all matplotlib capability without having to set up the background basemap. You can use

plot()
to style points and lines, and you can also use more complex functions like
contour()
,
quiver()
, etc. Furthermore, with mplleaflet you no longer have to worry about setting up the basemap. Displaying continents or roads is determined automatically by the zoom level required to view the physical size of the data. You should use a different library if you need fine control over the basemap, or need a geographic projection other than spherical mercator.

Installation

Install

mplleaflet
from PyPI using
$ pip install mplleaflet
.

Development

If developing for

mplleaflet
,
mplexporter
is a git submodule with its Python package files placed under the
mplleaflet
package. The Makefile copies the files into the appropriate location.
$ git submodule init
$ git submodule update
$ make
$ pip install -e .

Dependencies

Optional * pyproj Only needed if you only use non-WGS-84 projections. * GeoPandas To make your life easier.

We use cookies. If you continue to browse the site, you agree to the use of cookies. For more information on our use of cookies please see our Privacy Policy.