You are reading an old version of the documentation (v1.4.2). For the latest version see

Table Of Contents

Previous topic

Adding new scales and projections to matplotlib

Next topic

Matplotlib AxesGrid Toolkit

This Page


Date:October 25, 2014

Toolkits are collections of application-specific functions that extend matplotlib.


(Not distributed with matplotlib)

Plots data on map projections, with continental and political boundaries, see basemap docs.



(Not distributed with matplotlib)

An alternative mapping library written for matplotlib v1.2 and beyond. Cartopy builds on top of matplotlib to provide object oriented map projection definitions and close integration with Shapely for powerful yet easy-to-use vector data processing tools. An example plot from the Cartopy gallery:


GTK Tools

mpl_toolkits.gtktools provides some utilities for working with GTK. This toolkit ships with matplotlib, but requires pygtk.

Excel Tools

mpl_toolkits.exceltools provides some utilities for working with Excel. This toolkit ships with matplotlib, but requires xlwt


(Not distributed with matplotlib)

mpl_toolkits.natgrid is an interface to natgrid C library for gridding irregularly spaced data. This requires a separate installation of the natgrid toolkit from the sourceforge download page.


mpl_toolkits.mplot3d provides some basic 3D plotting (scatter, surf, line, mesh) tools. Not the fastest or feature complete 3D library out there, but ships with matplotlib and thus may be a lighter weight solution for some use cases.

(Source code, png, hires.png, pdf)



The matplotlib AxesGrid toolkit is a collection of helper classes to ease displaying multiple images in matplotlib. The AxesGrid toolkit is distributed with matplotlib source.



(Not distributed with matplotlib)

MplDataCursor is a toolkit written by Joe Kington to provide interactive “data cursors” (clickable annotation boxes) for matplotlib.


prettyplotlib is an extension to matplotlib which changes many of the defaults to make plots some consider more attractive.

High-Level Plotting

Several projects have started to provide a higher-level interface to matplotlib. These are independent projects.


(Not distributed with matplotlib)

seaborn is a high level interface for drawing statistical graphics with matplotlib. It aims to make visualization a central part of exploring and understanding complex datasets.


(Not distributed with matplotlib)

ggplot is a port of the R ggplot2 to python based on matplotlib.