| Abstract: |
matplotlib is a 2D graphics package written in Python. The design of matplotlib allows a wide variety of uses: you can create plots interactively from the shell, generate plots from scripts in a web application server, create animated or dynamic plots for instrument control, or embed them in the Python GUI of your choice. Unlike other plotting solutions for Python, which are wrappers of libraries from other languages, matplotlib is written primarily in Python, with calls to extension code for special purposes. Thus it is much easier for Python users to become developers, and matplotlib has an active community of developers who contribute to the code base. Originally designed to allow a user coming from Matlab to generate plots with a similar syntax and quality as Matlab, matplotlib now embraces the best ideas from Python, IDL, gnuplot and Matlab in the pylab interface, which is a procedural wrapper around the core object oriented API.
matplotlib is an array plotting package, and is codeveloped with the developers of numarray at STScI and has full compatibility with the Numeric and numarray array packages at the Python and extension code levels. The abstract class hierarchy is separated from the backend rendering layer, allowing the same pylab scripts to generate identical plots in GTK, WX, Tkinter and FLTK, including event handling such as mouse motion and clicks, as well as generate image output in postscript, SVG, PNG and other formats. It is fully integrated with the interactive Python shell ipython, which runs the GUI mainloops of GTK and WX in a separate thread, allowing interactive control of plots typical in packages such as Matlab and Mathematica.
There is support for most of the standard things people want to do with 2D plotting, with a special emphasis on scientific plots, including images, line plots, scatter plots, histograms, bar charts, errorbars, polar and log scaling, contouring, financial charts, legends, mathematical text with a built-in TeX math expression parser, freetype2, W3C compliant cross-platform font-management, and more. matplotlib is highly configurable, with the default appearance of every plot element controlled by a configuration file, and all of the plot elements readily customizable.
|