ANN: matplotlib-0.40 python plots with matlab syntax

J

John Hunter

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.

http://matplotlib.sourceforge.net

What's new

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
http://matplotlib.sourceforge.net/matplotlib.backends.backend_wx.html
for a summary of known issues.

Pseudo color plots

The pcolor command generates pseudo color plots. See
http://matplotlib.sourceforge.net/screenshots.html#pcolor_demo and
http://matplotlib.sourceforge.net/screenshots.html#mri_with_eeg for
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
http://matplotlib.sourceforge.net/screenshots.html#legend_demo

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
http://matplotlib.sourceforge.net/screenshots.html#barchart_demo

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
inconveniences!

API changes

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


John Hunter
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Members online

No members online now.

Forum statistics

Threads
473,744
Messages
2,569,484
Members
44,903
Latest member
orderPeak8CBDGummies

Latest Threads

Top