Skip to main content

D3 Viewer for Matplotlib

Project description

mpld3: A D3 Viewer for Matplotlib

- Author: Jake Vanderplas <>
- License: BSD 3-clause

This is an interactive D3js-based viewer which brings matplotlib graphics to the browser.
Please visit []( for documentation and examples.

You may also see the [blog post](, or the
[IPython notebook examples](
available in the ``notebooks`` directory of this repository.

mpld3 requires [jinja2]( version 2.7+
and [matplotlib]( version 1.3+.

Optionally, mpld3 can be used with [IPython](, and requires
version 1.1+.

To install the library system-wide, download the source and type

[~]$ python install

Or, to install locally, use

[~]$ python install --prefix=/path/to/location/

Then make sure your Python path points to this location.

Trying it out
The package is pure python, and very light-weight. You can take a look at
the notebooks in the examples directory, or run ````, which
will create a set of plots and launch a browser window showing interactive
views of these plots.

For a more comprehensive set of examples, see the
[IPython notebook examples]( available in the ``examples`` directory.

Test Plots
To explore the comparison between D3 renderings and matplotlib renderings for
various plot types, run the script ````. This will generate
an html page with the D3 renderings beside corresponding matplotlib renderings.

### Currently Supported

Currently the support of matplotlib features is very limited. The code
supports the following:

- multiple axes, placed correctly on the figure
- lines and scatter plots created with ``plt.plot``, ``plt.scatter``, etc.
- grid lines and their properties
- title and axis labels
- patches (i.e. shapes like histograms, etc.)
- polygons (filled plots, etc.)
- some collections (scatter plots, etc.)
- interactive plugins such as tooltips (see

### TODO List

There are many features still missing, and they range from fairly
straightforward to fairly difficult.

- tick specification & formatting
- some legend features
- twin axes (i.e. multiple scales on one plot) tied together
- additional tools, such as box-zoom

If any of these look like something you'd like to tackle, feel free to submit
a pull request!

Project details

Release history Release notifications

History Node


History Node


History Node


This version
History Node


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Filename, size & hash SHA256 hash help File type Python version Upload date
mpld3-0.0.1.tar.gz (358.0 kB) Copy SHA256 hash SHA256 Source None Feb 11, 2014

Supported by

Elastic Elastic Search Pingdom Pingdom Monitoring Google Google BigQuery Sentry Sentry Error logging CloudAMQP CloudAMQP RabbitMQ AWS AWS Cloud computing Fastly Fastly CDN DigiCert DigiCert EV certificate StatusPage StatusPage Status page