NewYour coding agent can read the release notes before it upgrades.Set up the MCP server →
PyPI · #166 most downloaded on PyPI
Python plotting package
Last release 20 days ago
11 Sep 2026
Ships fairly regularly
a new release about every 2 months
Some releases are documented
notes for 34 of the last 60 stable releases
1 version withdrawn
withdrawn after publishing
21 years old
143 releases · first in 2006
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
One column per quarter.
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
2005-01-21 Refactored numerix to solve vexing namespace issues - JDH
Refactored numerix to solve vexing namespace issues - JDH
Applied Nadia's contour bug fix - JDH
Made some changes to the contour routine - particularly region=1 seems t fix a lot of the zigzag strangeness. Added colormaps as default for contour - JDH
Restored builtin names which were overridden (min, max, abs, round, and sum) in pylab. This is a potentially significant change for those who were relying on an array version of those functions that previously overrode builtin function names. - ADS
Added accents to mathtext: hat, breve, grave, bar, acute, tilde, vec, dot, ddot. All of them have the same syntax, e.g., to make an overbar you do bar{o} or to make an o umlaut you do ddot{o}. The shortcuts are also provided, e.g., "o 'e `e ~n .x ^y - JDH
Plugged image resize memory leaks - JDH
Fixed some mathtext parser problems relating to superscripts
Fixed a yticklabel problem for colorbars under change of clim - JDH
Cleaned up Destroy handling in wx reducing memleak/fig from approx 800k to approx 6k- JDH
Added kappa to latex_to_bakoma - JDH
Support arbitrary colorbar axes and horizontal colorbars - JDH
Fixed colormap number of colors bug so that the colorbar has the same discretization as the image - JDH
Added Nadia's x,y contour fix - JDH
backend_cairo: added PDF support which requires pycairo 0.1.4. Its not usable yet, but is ready for when the Cairo PDF backend matures - SC
Added Nadia's x,y contour fix
Fixed set clip_on bug in artist - JDH
Reverted pythoninspect in tkagg - JDH
Fixed a backend_bases event bug caused when an event is triggered when location is None - JDH
Add patch from Stephen Walton to fix bug in pylab.load() when the % character is included in a comment. - ADS
Added markerscale attribute to Legend class. This allows the marker size in the legend to be adjusted relative to that in the plot. - ADS
Add patch from Ben Vanhaeren to make the FigureManagerGTK vbox a public attribute - SC
Release 0.70
Added coord location to key press and added a examples/picker_demo.py
Fixed coords notification in wx toolbar - JDH
Moved connection and disconnection event handling to the FigureCanvasBase. Backends now only need to connect one time for each of the button press, button release and key press/release functions. The base class deals with callbacks and multiple connections. This fixes flakiness on some backends (tk, wx) in the presence of multiple connections and/or disconnect - JDH
Fixed PS mathtext bug where color was not set - Jochen please verify correct - JDH
Added Shadow class and added shadow kwarg to legend and pie for shadow effect - JDH
Added pie charts and new example/pie_demo.py
Fixed an agg text rotation alignment bug, fixed some text kwarg processing bugs, and added examples/text_rotation.py to explain and demonstrate how text rotations and alignment work in matplotlib. - JDH
Nothing published for this version
2004-12-13 colors.py: rgb2hex(), hex2color() made simpler (and faster), also rgb2hex()
colors.py: rgb2hex(), hex2color() made simpler (and faster), also rgb2hex() - added round() instead of integer truncation hex2color() - changed 256.0 divisor to 255.0, so now '#ffffff' becomes (1.0,1.0,1.0) not (0.996,0.996,0.996) - SC
Added ion and ioff to pylab interface - JDH
backend_template.py: delete FigureCanvasTemplate.realize() - most backends don't use it and its no longer needed
backend_ps.py, backend_svg.py: delete show() and draw_if_interactive() - they are not needed for image backends
backend_svg.py: write direct to file instead of StringIO
SC
Added zorder to artists to control drawing order of lines, patches and text in axes. See examples/zoder_demo.py - JDH
Fixed colorbar bug with scatter - JDH
Added Nadia Dencheva <dencheva@stsci.edu> contour code - JDH
backend_cairo.py: got mathtext working - SC
Added Norm Peterson's svg clipping patch
Added Matthew Newville's wx printing patch
Migrated matlab to pylab - JDH
backend_gtk.py: split into two parts
backend_gdk.py - an image backend
backend_gtk.py - A GUI backend that uses GDK - SC
backend_gtk.py: remove quit_after_print_xvfb(*args), show_xvfb(), Dialog_MeasureTool(gtk.Dialog) one month after sending mail to matplotlib-users asking if anyone still uses these functions - SC
backend_bases.py, backend_template.py: updated some of the method documentation to make them consistent with each other - SC
Fixed multiple bindings per event for TkAgg mpl_connect and mpl_disconnect. Added a "test_disconnect" command line parameter to coords_demo.py JTM
Fixed some legend bugs JDH
Added over command for oneoff over plots. e.g., over(plot, x, y, lw=2). Works with any plot function.
Added bbox property to text - JDH
Zoom to rect now respect reversed axes limits (for both linear and log axes). - GL
Added the over command to the matlab interface. over allows you to add an overlay plot regardless of hold state. - JDH
Added Printf to mplutils for printf style format string formatting in C++ (should help write better exceptions)
IMAGE_FORMAT: remove from agg and gtkagg backends as its no longer used - SC
Added matplotlib compatible set and get introspection. See set_and_get.py
applied Norbert's patched and exposed legend configuration to kwargs - JDH
backend_gtk.py: added a default exception handler - SC
backend_gtk.py: change so that the backend knows about all image formats and does not need to use IMAGE_FORMAT in other backends - SC
Fixed some report_error bugs in string interpolation as reported on SF bug tracker- JDH
backend_gtkcairo.py: change so all print_figure() calls render using Cairo and get saved using backend_gtk.print_figure() - SC
backend_cairo.py: Discovered the magic number (96) required for Cairo PS plots to come out the right size. Restored Cairo PS output and added support for landscape mode - SC
Added ishold - JDH
Added many new matlab colormaps - autumn bone cool copper flag gray hot hsv jet pink prism spring summer winter - PG
greatly simplify the emitted postscript code - JV
Added new plotting functions spy, spy2 for sparse matrix visualization - JDH
Added rgrids, thetragrids for customizing the grid locations and labels for polar plots - JDH
make the Gtk backends build without an X-server connection - JV
matplotlib/__init__.py: Added FROZEN to signal we are running under py2exe (or similar) - is used by backend_gtk.py - SC
backend_gtk.py: Made fix suggested by maffew@cat.org.au to prevent problems when py2exe calls pygtk.require(). - SC
backend_cairo.py: Added support for printing to a fileobject. Disabled cairo PS output which is not working correctly. - SC
2004-11-04 Changed -dbackend processing to only use known backends, so we don't clobber other non-matplotlib uses of -d, like -debug.
Changed -dbackend processing to only use known backends, so we don't clobber other non-matplotlib uses of -d, like -debug.
backend_agg.py: added IMAGE_FORMAT to list the formats that the backend can save to. backend_gtkagg.py: added support for saving JPG files by using the GTK backend - SC
backend_cairo.py: now produces png and ps files (although the figure sizing needs some work). pycairo did not wrap all the necessary functions, so I wrapped them myself, they are included in the backend_cairo.py doc string. - SC
backend_ps.py: clean up the generated PostScript code, use the PostScript stack to hold intermediate values instead of storing them in the dictionary. - JV
backend_ps.py, ft2font.cpp, ft2font.h: fix the position of text in the PostScript output. The new FT2Font method get_descent gives the distance between the lower edge of the bounding box and the baseline of a string. In backend_ps the text is shifted upwards by this amount. - JV
backend_ps.py: clean up the code a lot. Change the PostScript output to be more DSC compliant. All definitions for the generated PostScript are now in a PostScript dictionary 'mpldict'. Moved the long comment about drawing ellipses from the PostScript output into a Python comment. - JV
backend_gtk.py: removed FigureCanvasGTK.realize() as its no longer needed. Merged ColorManager into GraphicsContext backend_bases.py: For set_capstyle/joinstyle() only set cap or joinstyle if there is no error. - SC
backend_gtk.py: tidied up print_figure() and removed some of the dependency on widget events - SC
backend_cairo.py: The renderer is complete except for mathtext, draw_image() and clipping. gtkcairo works reasonably well. cairo does not yet create any files since I can't figure how to set the 'target surface', I don't think pycairo wraps the required functions - SC
backend_gtk.py: Improved the save dialog (GTK 2.4 only) so it presents the user with a menu of supported image formats - SC
backend_svg.py: change print_figure() to restore original face/edge color backend_ps.py : change print_figure() to ensure original face/edge colors are restored even if there's an IOError - SC
Applied Norbert's errorbar patch to support barsabove kwarg
Applied Norbert's legend patch to support None handles
Added two more backends: backend_cairo.py, backend_gtkcairo.py They are not complete yet, currently backend_gtkcairo just renders polygons, rectangles and lines - SC
Added polar axes and plots - JDH
Fixed corrcoef bug exposed by corrcoef(X) where X is matrix - JDH
Added kwarg support to xticks and yticks to set ticklabel text properties -- thanks to T. Edward Whalen for the suggestion
Added support for PIL images in imshow(), image.py - ADS
Re-worked exception handling in _image.py and _transforms.py to avoid masking problems with shared libraries. - JTM
Streamlined the matlab interface wrapper, removed the noplot option to hist - just use mlab.hist instead.
Added Andrew Dalke's strftime code to extend the range of dates supported by the DateFormatter - JDH
Added barh - JDH
Removed fallback to alternate array package from numerix so that ImportErrors are easier to debug. - JTM
Add GTK+ 2.4 support for the message in the toolbar. SC
Made some changes to support python22 - lots of doc fixes. - JDH
Added a Verbose class for reporting - JDH
Released 0.63.0
Added save to file object for agg - see examples/print_stdout.py
Reorganized all py code to lib subdir
Fixed axes resize image edge effects on interpolation - required upgrade to agg22 which fixed an agg bug related to this problem
Added toolbar2 message display for backend_tkagg. JTM
Added coords formatter attributes. These must be callable, and return a string for the x or y data. These will be used to format the x and y data for the coords box. Default is the axis major formatter. e.g.:
# format the coords message box
def price(x): return '$%1.2f'%x
ax.format_xdata = DateFormatter('%Y-%m-%d')
ax.format_ydata = price
Total rewrite of dates handling to use python datetime with num2date, date2num and drange. pytz for timezone handling, dateutils for spohisticated ticking. date ranges from 0001-9999 are supported. rrules allow arbitrary date ticking. examples/date_demo*.py converted to show new usage. new example examples/date_demo_rrule.py shows how to use rrules in date plots. The date locators are much more general and almost all of them have different constructors. See matplotlib.dates for more info.
Applied Fernando's backend __init__ patch to support easier backend maintenance. Added his numutils to mlab. JDH
Re-designated all files in matplotlib/images as binary and w/o keyword substitution using "cvs admin -kb *.svg ...". See binary files in "info cvs" under Linux. This was messing up builds from CVS on windows since CVS was doing lf -> cr/lf and keyword substitution on the bitmaps. - JTM
Modified setup to build array-package-specific extensions for those extensions which are array-aware. Setup builds extensions automatically for either Numeric, numarray, or both, depending on what you have installed. Python proxy modules for the array-aware extensions import the version optimized for numarray or Numeric determined by numerix. - JTM
Moved definitions of infinity from mlab to numerix to avoid divide by zero warnings for numarray - JTM
Added axhline, axvline, axhspan and axvspan
Nothing published for this version
Your coding agent can read these notes before it upgrades. Set up the MCP server →