ANN: matplotlib 1.0.0

matplotlib 1.0.0 is available for download at

You can read this announcement with links and rendered figures at

This page just covers the highlights -- for the full story, see the

A big thanks to all the developers who made this release possible.
Some of the contributions are highlighted below, but a particular
thanks to Eric Firing for new features and a heroic effort closing and
fixing bugs, Jae-Joon Lee for continuing to amaze us with the things
he can make matplotlib do (see gridspec below), Michael Droettboom for
his tireless work tracking down bugs no one else can figure out,
Christoph Gohlke for the Windows binaries, Russell Owens for the O X
binaries, and Benjamin Root and Michiel de Hoon for many bug fixes and
new features.

What's new in matplotlib 1.0



HTML5/Canvas backend:

  Simon Ratcliffe and Ludwig Schwardt have released an HTML5/Canvas
  ( backend for matplotlib.
  The backend is almost feature complete, and they have done a lot of
  work comparing their html5 rendered images with our core renderer
  Agg. The backend features client/server interactive navigation of
  matplotlib figures in an html5 compliant browser.

Sophisticated subplot grid layout:

Jae-Joon Lee has written gridspec, a new module for doing complex
subplot layouts, featuring row and column spans and more. See for a tutorial overview.

Easy pythonic subplots:

  Fernando Perez got tired of all the boilerplate code needed to
  create a figure and multiple subplots when using the matplotlib API,
  and wrote a subplots helper function
  Basic usage allows you to create the figure and an array of subplots
  with numpy indexing (starts with 0). Eg::

    fig, axarr = plt.subplots(2, 2)
    axarr[0,0].plot([1,2,3]) # upper, left

  for several code examples.

Contour fixes and and triplot:

  Ian Thomas has fixed a long-standing bug that has vexed our most
  talented developers for years. contourf now handles interior masked
  regions, and the boundaries of line and filled contours coincide.

  Additionally, he has contributed a new module matplotlib.tri and
  helper function triplot for creating and plotting unstructured
  triangular grids. See
  for the function and
  for example code.

multiple calls to show supported:

  A long standing request is to support multiple calls to `show`.
  This has been difficult because it is hard to get consistent
  behavior across operating systems, user interface toolkits and
  versions. Eric Firing has done a lot of work on rationalizing show
  across backends, with the desired behavior to make show raise all
  newly created figures and block execution until they are closed.
  Repeated calls to show should raise newly created figures since the
  last call. Eric has done a lot of testing on the user interface
  toolkits and versions and platforms he has access to, but it is not
  possible to test them all, so please report problems to the mailing
  list and bug tracker.

mplot3d graphs can be embedded in arbitrary axes:

  You can now place an mplot3d graph into an arbitrary axes location,
  supporting mixing of 2D and 3D graphs in the same figure, and/or
  multiple 3D graphs in a single figure, using the "projection"
  keyword argument to add_axes or add_subplot. Thanks Ben Root.


  Eric Firing wrote tick_params, a convenience method for changing the
  appearance of ticks and tick labels. See pyplot function
  tick_params and associated Axes matplotlib.axes.Axes.tick_params.

Lots of performance and feature enhancements:

  * Faster magnification of large images, and the ability to zoom in
    to a single pixel

  * Local installs of documentation work better

  * Improved "widgets" -- mouse grabbing is supported

  * More accurate snapping of lines to pixel boundaries

  * More consistent handling of color, particularly the alpha channel,
    throughout the API

Much improved software carpentry:

  The matplotlib trunk is probably in as good a shape as it has ever
  been, thanks to improved software carpentry. We now have a buildbot
  which runs a suite of nose regression tests on every svn commit,
  auto-generating a set of images and comparing them against a set of
  known-goods, sending emails to developers on failures with a
  pixel-by-pixel image comparison. Releases and release bugfixes
  happen in branches, allowing active new feature development to
  happen in the trunk while keeping the release branches stable.
  Thanks to Andrew Straw, Michael Droettboom and other matplotlib
  developers for the heavy lifting.

Bugfix marathon:

  Eric Firing went on a bug fixing and closing marathon, closing over
  100 bugs on the bug tracker with help from Jae-Joon Lee, Michael
  Droettboom, Christoph Gohlke and Michiel de Hoon.

CHANGELOG since 0.99

2010-07-05 Added Ben Root's patch to put 3D plots in arbitrary axes,
           allowing you to mix 3d and 2d in different axes/subplots or
           to have multiple 3D plots in one figure. See
           examples/mplot3d/ - JDH

2010-07-05 Preferred kwarg names in set_xlim are now 'left' and
           'right'; in set_ylim, 'bottom' and 'top'; original
           kwargs are still accepted without complaint. - EF

2010-07-05 TkAgg and FltkAgg backends are now consistent with other
           interactive backends: when used in scripts from the
           command line (not from ipython -pylab), show blocks,
           and can be called more than once. - EF

2010-07-02 Modified CXX/WrapPython.h to fix "swab bug" on solaris so
           mpl can compile on Solaris with CXX6 in the trunk. Closes
           tracker bug 3022815 - JDH

2010-06-30 Added autoscale convenience method and corresponding
           pyplot function for simplified control of autoscaling;
           and changed axis, set_xlim, and set_ylim so that by
           default, they turn off the autoscaling on the relevent
           axis or axes. Therefore one can call set_xlim before
           plotting a line, for example, and the limits will be
           retained. - EF

2010-06-20 Added Axes.tick_params and corresponding pyplot function
           to control tick and tick label appearance after an Axes
           has been created. - EF

2010-06-09 Allow Axes.grid to control minor gridlines; allow
           Axes.grid and Axis.grid to control major and minor
           gridlines in the same method call. - EF

2010-06-06 Change the way we do split/dividend adjustments in
  to handle dividends and fix the zero division bug reported
           in sf bug 2949906 and 2123566. Note that volume is not adjusted
           because the Yahoo CSV does not distinguish between share
           split and dividend adjustments making it near impossible to
           get volume adjustement right (unless we want to guess based
           on the size of the adjustment or scrape the html tables,
           which we don't) - JDH

2010-06-06 Updated dateutil to 1.5 and pytz to 2010h.

2010-06-02 Add error_kw kwarg to - EF

2010-06-01 Fix pcolormesh() and QuadMesh to pass on kwargs as
           appropriate. - RM

2010-05-18 Merge mpl_toolkits.gridspec into the main tree. - JJL

2010-05-04 Improve backend_qt4 so it displays figures with the
           correct size - DSD

2010-04-20 Added generic support for connecting to a timer for events. This
           adds TimerBase, TimerGTK, TimerQT, TimerWx, and TimerTk to
           the backends and a new_timer() method to each backend's
           canvas to allow ease of creating a new timer. - RM

2010-04-20 Added margins() Axes method and pyplot function. - EF

2010-04-18 update the axes_grid documentation. -JJL

2010-04-18 Control MaxNLocator parameters after instantiation,
           and via Axes.locator_params method, with corresponding
           pyplot function. -EF

2010-04-18 Control ScalarFormatter offsets directly and via the
           Axes.ticklabel_format() method, and add that to pyplot. -EF

2010-04-16 Add a close_event to the backends. -RM

2010-04-06 modify axes_grid examples to use axes_grid1 and axisartist. -JJL

2010-04-06 rebase axes_grid using axes_grid1 and axisartist modules. -JJL

2010-04-06 axes_grid toolkit is splitted into two separate modules,
           axes_grid1 and axisartist. -JJL

2010-04-05 Speed up import: import pytz only if and when it is
           needed. It is not needed if the rc timezone is UTC. - EF

2010-04-03 Added color kwarg to Axes.hist(), based on work by
           Jeff Klukas. - EF

2010-03-24 refactor colorbar code so that no cla() is necessary when
           mappable is changed. -JJL

2010-03-22 fix incorrect rubber band during the zoom mode when mouse
           leaves the axes. -JJL

2010-03-21 x/y key during the zoom mode only changes the x/y limits. -JJL

2010-03-20 Added function suggested by JJL. - EF

2010-03-20 Added conditional support for new Tooltip API in gtk backend. - EF

2010-03-20 Changed plt.fig_subplot() to plt.subplots() after discussion on
           list, and changed its API to return axes as a numpy object array
           (with control of dimensions via squeeze keyword). FP.

2010-03-13 Manually brought in commits from branch

  r8191 | leejjoon | 2010-03-13 17:27:57 -0500 (Sat, 13 Mar 2010) | 1 line

  fix the bug that handles for scatter are incorrectly set when dpi!=72.
  Thanks to Ray Speth for the bug report.

2010-03-03 Manually brought in commits from branch via diff/patch
        (svnmerge is broken)

  r8175 | leejjoon | 2010-03-03 10:03:30 -0800 (Wed, 03 Mar 2010) | 1 line

  fix arguments of allow_rasterization.draw_wrapper
  r8174 | jdh2358 | 2010-03-03 09:15:58 -0800 (Wed, 03 Mar 2010) | 1 line

  added support for favicon in docs build
  r8173 | jdh2358 | 2010-03-03 08:56:16 -0800 (Wed, 03 Mar 2010) | 1 line

  applied Mattias get_bounds patch
  r8172 | jdh2358 | 2010-03-03 08:31:42 -0800 (Wed, 03 Mar 2010) | 1 line

  fix svnmerge download instructions
  r8171 | jdh2358 | 2010-03-03 07:47:48 -0800 (Wed, 03 Mar 2010) | 1 line

2010-02-25 add that demonstrates new functionality. -JJL

2010-02-25 refactor Annotation to support arbitrary Transform as xycoords
           or textcoords. Also, if a tuple of two coordinates is provided,
           they are interpreted as coordinates for each x and y position.

2010-02-24 Added pyplot.fig_subplot(), to create a figure and a group of
           subplots in a single call. This offers an easier pattern than
           manually making figures and calling add_subplot() multiple times. FP

2010-02-17 Added Gokhan's and Mattias' customizable keybindings patch
           for the toolbar. You can now set the keymap.* properties
           in the matplotlibrc file. Newbindings were added for
           toggling log scaling on the x-axis. JDH

2010-02-16 Committed TJ's filled marker patch for
           left>right>bottom>top>full filled markers. See
           examples/pylab_examples/ JDH

2010-02-11 Added 'bootstrap' option to boxplot. This allows bootstrap
           estimates of median confidence intervals. Based on an
           initial patch by Paul Hobson. - ADS

2010-02-06 Added setup.cfg "basedirlist" option to override setting
           in "basedir" dictionary; added "gnu0"
           platform requested by Benjamin Drung. - EF

2010-02-06 Added 'xy' scaling option to EllipseCollection. - EF

2010-02-03 Made plot_directive use a custom PlotWarning category, so that
           warnings can be turned into fatal errors easily if desired. - FP

2010-01-29 Added draggable method to Legend to allow mouse drag
           placement. Thanks Adam Fraser. JDH

2010-01-25 Fixed a bug reported by Olle Engdegard, when using
           histograms with stepfilled and log=True - MM

2010-01-16 Upgraded CXX to 6.1.1 - JDH

2009-01-16 Don't create minor ticks on top of existing major
           ticks. Patch by Neil Crighton. -ADS

2009-01-16 Ensure three minor ticks always drawn (SF# 2924245). Patch
           by Neil Crighton. -ADS

2010-01-16 Applied patch by Ian Thomas to fix two contouring
           problems: now contourf handles interior masked regions,
           and the boundaries of line and filled contours coincide. - EF

2009-01-11 The color of legend patch follows the rc parameters
           axes.facecolor and axes.edgecolor. -JJL

2009-01-11 adjustable of Axes can be "box-forced" which allow
           sharing axes. -JJL

2009-01-11 Add add_click and pop_click methods in
           BlockingContourLabeler. -JJL

2010-01-03 Added rcParams['axes.color_cycle'] - EF

2010-01-03 Added Pierre's qt4 formlayout editor and toolbar button - JDH

2009-12-31 Add support for using math text as marker symbols (Thanks to tcb)
           - MGD

2009-12-31 Commit a workaround for a regression in PyQt4-4.6.{0,1} - DSD

2009-12-22 Fix cmap data for gist_earth_r, etc. -JJL

2009-12-20 spines: put spines in data coordinates, add set_bounds()
           call. -ADS

2009-12-18 Don't limit notch size in boxplot to q1-q3 range, as this
           is effectively making the data look better than it is. - ADS

2009-12-18 mlab.prctile handles even-length data, such that the median
           is the mean of the two middle values. - ADS

2009-12-15 Add raw-image (unsampled) support for the ps backend. - JJL

2009-12-14 Add patch_artist kwarg to boxplot, but keep old default.
           Convert to use the new patch_artist. - ADS

2009-12-06 axes_grid: reimplemented AxisArtist with FloatingAxes support.
           Added new examples. - JJL

2009-12-01 Applied Laurent Dufrechou's patch to improve blitting with
           the qt4 backend - DSD

2009-11-13 The pdf backend now allows changing the contents of
           a pdf file's information dictionary via PdfPages.infodict. - JKS

2009-11-12 should no longer cause EINTR on Python 2.6
           (but will on the 2.5 version of subprocess). Also the
           fc-list command in that file was fixed so now it should
           actually find the list of fontconfig fonts. - JKS

2009-11-10 Single images, and all images in renderers with
           option_image_nocomposite (i.e. agg, macosx and the svg
           backend when rcParams['svg.image_noscale'] is True), are
           now drawn respecting the zorder relative to other
           artists. (Note that there may now be inconsistencies across
           backends when more than one image is drawn at varying
           zorders, but this change introduces correct behavior for
           the backends in which it's easy to do so.)

2009-10-21 Make AutoDateLocator more configurable by adding options
           to control the maximum and minimum number of ticks. Also
           add control of the intervals to be used for ticking. This
           does not change behavior but opens previously hard-coded
           behavior to runtime modification`. - RMM

2009-10-19 Add "path_effects" support for Text and Patch. See
           examples/pylab_examples/ -JJL

2009-10-19 Add "use_clabeltext" option to clabel. If True, clabels
           will be created with ClabelText class, which recalculates
           rotation angle of the label during the drawing time. -JJL

2009-10-16 Make AutoDateFormatter actually use any specified
           timezone setting.This was only working correctly
           when no timezone was specified. - RMM

2009-09-27 Beginnings of a capability to test the pdf backend. - JKS

2009-09-27 Add a savefig.extension rcparam to control the default
           filename extension used by savefig. - JKS