Please donate to support matplotlib development.

matplotlib 1.0.1 is available for download. See what's new and tips on installing

Sandro Tosi has a new book Matplotlib for python developers also at amazon.

Build websites like matplotlib's, with sphinx and extensions for mpl plots, math, inheritance diagrams -- try the sampledoc tutorial.


Watch the SciPy 2009 intro and advanced matplotlib tutorials

Watch a talk about matplotlib presented at NIPS 08 Workshop MLOSS and one presented at ChiPy.


There are several matplotlib addon toolkits, including the projection and mapping toolkit basemap, 3d plotting with mplot3d, axes and axis helpers in axes_grid and more.

Need help?

Check the user guide, the faq, the api docs, archives, and join the matplotlib mailing lists. The search tool searches all of the documentation, including full text search of over 350 complete examples which exercise almost every corner of matplotlib.

You can file bugs, patches and feature requests on the sourceforge tracker, but it is a good idea to ping us on the mailing list too.

For details on what's new, see the detailed changelog or browse the source code. Anything that could require changes to your existing codes is logged in the api changes file.

Other stuff

The matplotlib license is based on the Python Software Foundation (PSF) license.

There is an active developer community and a long list of people who have made significant contributions.


matplotlib is a python 2D plotting library which produces publication quality figures in a variety of hardcopy formats and interactive environments across platforms. matplotlib can be used in python scripts, the python and ipython shell (ala MATLAB®* or Mathematica®), web application servers, and six graphical user interface toolkits.

matplotlib tries to make easy things easy and hard things possible. You can generate plots, histograms, power spectra, bar charts, errorcharts, scatterplots, etc, with just a few lines of code. For a sampling, see the screenshots, thumbnail gallery, and examples directory


For example, using "ipython -pylab" to provide an interactive environment, to generate 10,000 gaussian random numbers and plot a histogram with 100 bins, you simply need to type

  x = randn(10000)
  hist(x, 100)

For the power user, you have full control of line styles, font properties, axes properties, etc, via an object oriented interface or via a set of functions familiar to MATLAB users. The pylab mode provides all of the pyplot plotting functions listed below, as well as non-plotting functions from numpy and matplotlib.mlab.

plotting commands

acorr plot the autocorrelation function
annotate annotate something in the figure
arrow add an arrow to the axes
axes create a new axes
axhline draw a horizontal line across axes
axvline draw a vertical line across axes
axhspan draw a horizontal bar across axes
axvspan draw a vertical bar across axes
axis set or return the current axis limits
barbs a (wind) barb plot
bar make a bar chart
barh a horizontal bar chart
broken_barh a set of horizontal bars with gaps
box set the axes frame on/off state
boxplot make a box and whisker plot
cla clear current axes
clabel label a contour plot
clf clear a figure window
clim adjust the color limits of the current image
close close a figure window
colorbar add a colorbar to the current figure
cohere make a plot of coherence
contour make a contour plot
contourf make a filled contour plot
csd make a plot of cross spectral density
delaxes delete an axes from the current figure
draw Force a redraw of the current figure
errorbar make an errorbar graph
figlegend make legend on the figure rather than the axes
figimage make a figure image
figtext add text in figure coords
figure create or change active figure
fill make filled polygons
fill_between make filled polygons between two curves
findobj recursively find all objects matching some criteria
gca return the current axes
gcf return the current figure
gci get the current image, or None
getp get a graphics property
grid set whether gridding is on
hexbin make a 2D hexagonal binning plot
hist make a histogram
hold set the axes hold state
ioff turn interaction mode off
ion turn interaction mode on
isinteractive return True if interaction mode is on
imread load image file into array
imsave save array as an image file
imshow plot image data
ishold return the hold state of the current axes
legend make an axes legend
locator_params adjust parameters used in locating axis ticks
loglog a log log plot
matshow display a matrix in a new figure preserving aspect
margins set margins used in autoscaling
pcolor make a pseudocolor plot
pcolormesh make a pseudocolor plot using a quadrilateral mesh
pie make a pie chart
plot make a line plot
plot_date plot dates
plotfile plot column data from an ASCII tab/space/comma delimited file
pie pie charts
polar make a polar plot on a PolarAxes
psd make a plot of power spectral density
quiver make a direction field (arrows) plot
rc control the default params
rgrids customize the radial grids and labels for polar
savefig save the current figure
scatter make a scatter plot
setp set a graphics property
semilogx log x axis
semilogy log y axis
show show the figures
specgram a spectrogram plot
spy plot sparsity pattern using markers or image
stem make a stem plot
subplot make a subplot (numrows, numcols, axesnum)
subplots_adjust change the params controlling the subplot positions of current figure
subplot_tool launch the subplot configuration tool
suptitle add a figure title
table add a table to the plot
text add some text at location x,y to the current axes
thetagrids customize the radial theta grids and labels for polar
tick_params control the appearance of ticks and tick labels
ticklabel_format control the format of tick labels
title add a title to the current axes
tricontour make a contour plot on a triangular grid
tricontourf make a filled contour plot on a triangular grid
tripcolor make a pseudocolor plot on a triangular grid
triplot plot a triangular grid
xcorr plot the autocorrelation function of x and y
xlim set/get the xlimits
ylim set/get the ylimits
xticks set/get the xticks
yticks set/get the yticks
xlabel add an xlabel to the current axes
ylabel add a ylabel to the current axes
autumn set the default colormap to autumn
bone set the default colormap to bone
cool set the default colormap to cool
copper set the default colormap to copper
flag set the default colormap to flag
gray set the default colormap to gray
hot set the default colormap to hot
hsv set the default colormap to hsv
jet set the default colormap to jet
pink set the default colormap to pink
prism set the default colormap to prism
spring set the default colormap to spring
summer set the default colormap to summer
winter set the default colormap to winter
spectral set the default colormap to spectral

* MATLAB is a registered trademark of The MathWorks, Inc.

Mathematica is a registered trademark of Wolfram Research, Inc.