matplotlib is a pure python 2D plotting library with a matlab syntax
which produces publication quality figures using in a variety of
hardcopy formats (PNG, JPG, TIFF, PS) and interactive GUI environments
(WX, GTK) across platforms. matplotlib can be used in python scripts,
interactively from the python shell (ala matlab or mathematica), in
web application servers generating dynamic charts, or embedded in GTK
or WX applications.
WX python backend
Jeremy O'Donoghue has done an amazing job implementing the backend
for wxpython, with all the features such as interactive navigation
that are supported in the GTk backend. matplotlib should not be
available with a GUI anywhere wxpython, Numeric and python work,
including linux and friends, win32, and Mac OS X. See
for a summary of known issues.
Pseudo color plots
The pcolor command generates pseudo color plots. See
screenshots and example code
New time-series plotting functions
* psd - plots the power spectral density of a time series
* csd - plots the cross spectral density of two time series
* cohere - plots the coherence
See the examples dir in the src distro: psd_demo.py and csd_demo.py
Substantially improved layout
The transform architecture was refactored, allowing much more
precise layout. Lines, patches, text, etc... can now be placed and
scaled in arbitrary units, relative axes units, or physical size.
Applicaiton programmers who want to create lines, patches and text
directly using the API should read the transform module docs for
more info. See the text help for an example of how to specify text
locations in axes coords (0,0 is lower left and 1,1 is upper right)
Expanded legend capabilities
The legend class is improved, with a more sophisticated layout
engine and the ability to accept lines and rectangle patches as an
optional first argument to specify which lines/patches make up the
legend. There are also additional legend placement locations, like
'upper center'. See
Expanded errorbar capabilities
Gary Ruben contributed some code to support x and y errorbars,
either symmetrix or asymettric, in one enhanced function 'errorbar'.
See the errorbar_demo.py for examples of all the wild and wonderful
errorbar styles. Bar charts can now also display errorbars; see
Figure size and DPI controllable from matlab interface
The figure command now takes optional args figsize and dpi to set
the figure size and DPI in the matlab interface. This change
involved some changes in the way default sizes and resolutions were
handled among the various backends, with the effect that figures
generated by existing scripts may appear different, eg, in the
relative size of text to the figure elements. The advantage is that
the current implementation does a better job of computing true sizes
with increased fidelity between backends. Apologies for any
There have been some minor changes to the API for those using
matplotlib embedded in GTK applications.
* If you instantiate an Axes of Subplot intace, the first arg to
__init__ must be the figure that contains it.
* If you instantiate any artists, eg, Line2D, Rectangle, or
AxisTextGTk, you must initialize them with their dpi, bbox, and
transforms. See the help for the transforms modules and the
examples logo.py and mri_with_eeg.py, where the objects are
explicity created using the new API.
* The only change to the matlab interface is in the signature of the
errorbar func, which breaks matlab compatibility for the enhanced
ability to do x and y errorbars.
* See matplotlib.axes.py for a complete list of API changes