Win32 Warning: This is the first release I've done since my windows
build syste dies and I had to reinstall a bunch of tools and some
version numbers in my GTK build environment changed (eg my GTK
setup). Let me know if you encounter any problems. As always, try
removing site-packages/matplotlib and reinstalling before reporting
any problems
TeX support : Now you can (optionally) use TeX to handle *all* of the
text elements in your figure with the rc param text.usetex (*Agg and
PS only). PS support requires tex, dvips and Ghostscript 8.51
(older versions do not work properly -- test your version with
'gs --version'). Agg support requires tex and dvipng. A
directory ~/.tex.cache is created where support files are cached for
later reuse. We opted to ues TeX rather than LaTeX because it is
faster and can do all the things we thought useful for figure text
snippets. See http://matplotlib.sf.net/screenshots.html#tex_demo
and http://matplotlib.sf.net/matplotlib.texmanager.html. There are
several new rc params for configuring tex/latex support
# use tex/latex for all text handling
text.usetex : False
# tex is faster, but latex is required to use special font
# packages. See font.latex.package
text.tex.engine : latex
# This must be an available LaTeX font package,
# like 'times' or 'pslatex' ; only applies if text.usetex
# is true
font.latex.package : type1cm
Special thanks to Darren Dale for lots of hair-pulling work
customizing, enhancing and debugging the ps backend for LaTeX
support.
Masked arrays: Support for masked arrays in line plots, pcolor and
contours. There are some problems with filled contours and masked
arrays. Thanks Eric Firing and Jeffrey Whitaker.
Contour levels arg changes: see http://matplotlib.sf.net/API_CHANGES
for details
Byte images: Much faster imaeg loading for MxNx4 or MxNx3 UInt8
images, which bypasses the memory and CPU intensive integer/floating
point conversions. Nicolas Girard
New image resize options interpolation options. New values for the
interp kwarg are
'nearest', 'bilinear', 'bicubic', 'spline16', 'spline36',
'hanning', 'hamming', 'hermite', 'kaiser', 'quadric', 'catrom',
'gaussian', 'bessel', 'mitchell', 'sinc', 'lanczos', 'blackman'
See help(imshow) for details, particularly the interpolation,
filternorm and filterrad kwargs.
Text and dashes - Daishi Harada contributed a patch for connecting
text to points with lines. See examples/dashpointlabel.py and
examples/dashtick.py
Fast markers on win32: The marker cache optimization is finally
available for win32, after an agg bug was found and fixed (thanks
Maxim!). Line marker plots should be considerably faster now on
win32.
set deprecated: use setp instead; a simple, mostly braindead,
conversion script is provided below
Qt in ipython/pylab: You can now use qt in ipython pylab mode. Thanks
Fernando Perez and the Orsay team!
Agg wrapper proper: Started work on a proper agg wrapper to expose
more general agg functionality in mpl. See examples/agg_test.py.
Lots of wrapping remains to be done.
New scalar formatter: Darren Dale did a lot of work to make scalar
formatting smarter in pathalogical cases. See
examples/newscalarformatter_demo.py
Small features: linewidth and faceted kwarg to scatter to control
edgewidth and color, autolegending now inspects line segments in
addition to vertices, upgraded to agg23, new example showing how to
use line collections examples/line_collection.py, fixed antialiased
property setting in agg, added a postscript papersize rc option,
added an example showing how to embed mpl in a qt app
examples/embedding_in_qt.py, arrow keys now exposed in mpl's GUI
neutral event handling, added "among" kwarg to axes picker function
to limit picks, added autoscale_on property to Axes to control
whether or not autoscaling is done.
Bug fixes: fixed a contour masked array bug, contour memory leak
# Here is a script to recursively convert set and get to setp and
# getp. Please backup entire directory recursively before
# running this script
from matplotlib.cbook import listFiles
for fname in listFiles('.', '*.py'):
lines = []
cnt = 0
for line in file(fname):
if line.lstrip().startswith('set('):
line = line.replace('set(', 'setp(')
cnt +=1
if line.lstrip().startswith('get('):
line = line.replace('get(', 'getp(')
cnt +=1
lines.append(line)
file(fname, 'w').writelines(lines)
print '%s\t: %d replacements'%(fname,cnt)