You are reading an old version of the documentation (v2.0.1). For the latest version see


Table Of Contents

This Page


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

Mapping Toolkits


(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:


General Toolkits


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, 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.



mplcursors provides interactive data cursors for matplotlib.


(Not distributed with matplotlib)

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

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.


(Not distributed with matplotlib)

Matplotlib-Venn provides a set of functions for plotting 2- and 3-set area-weighted (or unweighted) Venn diagrams.


(Not distributed with matplotlib)

mplstereonet provides stereonets for plotting and analyzing orientation data in Matplotlib.

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)

holoviews makes it easier to visualize data interactively, especially in a Jupyter notebook, by providing a set of declarative plotting objects that store your data and associated metadata. Your data is then immediately visualizable alongside or overlaid with other data, either statically or with automatically provided widgets for parameter exploration.



(Not distributed with matplotlib)

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



(Not distributed with matplotlib)

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

iTerm2 terminal backend

(Not distributed with matplotlib)

matplotlib_iterm2 is an external matplotlib backend uses iTerm2 nightly build inline image display feature.