Differences between revisions 9 and 44 (spanning 35 versions)
Revision 9 as of 2004-10-21 09:55:22
Size: 7893
Editor: klds
Comment:
Revision 44 as of 2016-08-16 22:37:55
Size: 14341
Comment:
Deletions are marked like this. Additions are marked like this.
Line 2: Line 2:

   The problem of how to display data in graphs and other visual representations is
   one of the most difficult ones, because of the wide variety of requirements from
   each user. As a result, no one solution has emerged, but many different packages
   are available. There are interfaces to existing plotting libraries, as well as
   Python-centered solutions.
Over the years many different plotting modules and packages have been developed for Python. For most of that time there was no clear favorite package, but recently matplotlib has become the most widely used. Nevertheless, many of the others are still available and may suit your tastes or needs better. Some of these are interfaces to existing plotting libraries while others are Python-centered new implementations.
Line 10: Line 5:
    * The [http://www.pythonware.com/downloads.htm#pil PIL Toolkit] provides a very powerful set of tools for manipulating
    images. [http://www.pythonware.com/library/pil/handbook/index.htm Documentation]
 * The [[http://www.pythonware.com/downloads.htm#pil|PIL Toolkit]] provides a very powerful set of tools for manipulating images. [[http://www.pythonware.com/library/pil/handbook/index.htm|Documentation]]
 * [[http://www.pyqtgraph.org|PyQtGraph]] is a pure-python graphics library built on PyQt4 and numpy. It is intended for use in mathematics / scientific / engineering applications. The library provides widgets and graphicsItems for displaying / analyzing live image data (including 16-bit) as well as translate/scale/rotatable region-of-interest widgets for interactively slicing numpy arrays. The library is very fast due to its heavy leverage of numpy and Qt's graphicsView framework.
Line 14: Line 9:
 * [[http://matplotlib.sourceforge.net|Matplotlib]] is an Open Source plotting library designed to support interactive and publication quality plotting with a syntax familiar to Matlab users. Its interactive mode supports multiple windowing toolkits (currently: GTK, Tkinter, Qt, and wxWindows) as well as multiple noninteractive backends (PDF, postscript, SVG, antigrain geometry, and Cairo). Plots can be embedded within GUI applications or for non-interactive uses without any available display in batch mode. Matplotlib provides both a Matlab-like functional interface as well as an object oriented interface. [[http://ipython.scipy.org|IPython]] has a "pylab" mode which is specifically designed for interactive plotting with matplotlib.
 * [[http://bokeh.pydata.org/en/latest|Bokeh]] is a [[https://github.com/bokeh/bokeh|BSD licensed, open source]] Python interactive visualization platform that targets modern web browsers for presentation. Bokeh can create [[http://bokeh.pydata.org/en/latest/docs/user_guide/interaction.html|richly interactive]] visualizations and data applications, as [[http://bokeh.pydata.org/en/latest/docs/gallery.html#standalone-examples|standalone HTML documents]], [[http://bokeh.pydata.org/en/latest/docs/gallery.html#server-app-examples|sophisticated server-backed applications]], or [[http://nbviewer.jupyter.org/github/bokeh/bokeh-notebooks/blob/master/index.ipynb|inline in Jupyter Notebooks]]. Bokeh has an extensive [[http://bokeh.pydata.org/en/latest/docs/user_guide.html|User's Guide]] and other additional resources for learning:
  * [[https://www.youtube.com/watch?v=LXLQTuSSKfY|SciPy 2016 Tutorial video]] with related [[http://nbviewer.jupyter.org/github/bokeh/bokeh-notebooks/blob/master/tutorial/00%20-%20intro.ipynb|Jupyter Notebooks]]
  * Hosted example apps at [[https://demo.bokehplots.com]]
  * Community supported [[https://groups.google.com/a/continuum.io/forum/#!forum/bokeh|public mailing list]], Twitter feed [[https://twitter.com/bokehplots|@BokehPlots]]
  * [[http://hafen.github.io/rbokeh/|RBokeh]] for creating Bokeh visualizations from the R language
 * [[https://plot.ly|Plotly]] is a collaborative browser-based plotting and analytics platform. You can generate graphs and analyze data from the in-browser [[https://plot.ly/demo/script|Python sandbox]] (numpy supported) or the [[https://plot.ly/api/python|Plotly API]] (download [[https://pypi.python.org/pypi/plotly/0.5|here]]). Plotly supports [[http://nbviewer.ipython.org/github/plotly/IPython-plotly/tree/master/|interactive graphs]] with IPython notebooks. Graphs are interactive, can be styled with Python or the GUI, and [[https://plot.ly/~jackp/614/|sharable by link]]. Scripts, graphs, and data can be shared, collaboratively edited, and stored and run in Plotly.
 * [[http://gr-framework.org|GR]] is a universal framework for cross-platform visualization applications, ranging from publication quality 2D graphs to the representation of complex 3D scenes. GR provides both MATLAB-like convenience functions as well as a low-level functional interface. GR can be used in imperative programming systems or integrated into modern object-oriented systems, in particular those based on GUI toolkits (Qt, wxWidgets, Gtk) or interactive browser environments (Jupyter). GR can also be used as a backend for Matplotlib and speed up existing applications. The GR framework is especially suitable for real-time environments.
 * [[http://home.gna.org/veusz/|Veusz]] is a GPL scientific plotting package written in Python and PyQt, designed to create publication-quality output. Graphs are built up from simple components, and the program features an integrated command-line, GUI and scripting interface. Veusz can also be embedded in other Python programs, even those not using PyQt.
 * [[http://code.google.com/p/visvis/|Visvis]] is a pure Python library for visualization of 1D to 4D data in an object oriented way. Essentially, visvis is an object oriented layer of Python on top of OpenGl, thereby combining the power of OpenGl with the usability of Python. A Matlab-like interface in the form of a set of functions allows easy creation of objects (e.g. plot(), imshow(), volshow(), surf()).
 * [[http://code.enthought.com/projects/chaco/|Chaco]] is a device-independent 2D plotting package based on a DisplayPDF API. It supports '''fast''' vector graphics rendering for '''interactive data analysis''' (read: fast live updating plots) and custom plot construction. Chaco is easy to embed in python GUI applications (wxWindows, Qt) and provides nice abstractions for overlays and tools (select regions, zoom/pan, cross-hairs, labels, data inspectors, etc.). Chaco is able to output to any raster format supported by [[http://www.pythonware.com/downloads.htm#pil|PIL]], as well as PDF, PostScript and SVG backends. See [[http://code.enthought.com/projects/chaco/gallery.php|the gallery]] for screenshots and code examples.
 * [[radjkarl.github.io/diaGrabber|diaGrabber]] is based on [[http://www.pyqtgraph.org/|PyQtGraph]] and allows you to read, filter, process, interpolate and plot n-dimensional values from different sources (like libreOffice- or csv-files) and variable size. Through interactive reading it's also possible to evaluate streams in a kind of 'software-oscilloscope'.
 * KonradHinsen has some plotting support in his ScientificPython package, for example TkPlotCanvas.
 * Michael Haggerty has [[http://gnuplot-py.sourceforge.net/|a Gnuplot module]] that interfaces with [[http://www.gnuplot.info|the GNUPLOT package]].
 * [[http://php.iupui.edu/~mmiller3/python/#plotwrap|plot_wrap]] A module by Mike Miller which wraps the functions in [[http://www.gnu.org/software/plotutils/plotutils.html|the GNU plotutils]] package.
 * [[http://www.tcltk.com/blt/|BLT]] BLT is an extension to the tk widgets that can produce X/Y plots and bar charts. The BLT package can be used through [[http://pmw.sourceforge.net/|the Pmw package]], a framework for the creation of megawidgets built on top of Tkinter.
 * [[http://pyqwt.sourceforge.net/|PyQwt]] is a set of Python bindings for the Qwt C++ class library which extends the Qt framework with widgets for scientific and engineering applications.
 * [[http://pypi.python.org/pypi/guiqwt/|GUIQwt]] is a Python library based on Qwt providing efficient 2D data-plotting features (curve/image visualization and related tools) for interactive computing and signal/image processing application development.
 * [[http://www.linmpi.mpg.de/dislin/|DISLIN]] DISLIN is a high-level and easy to use graphics library for displaying data as curves, bar graphs, pie charts, 3D-color plots, surfaces, contours and maps. The software is available for several C, Fortran 77 and Fortran 90 compilers. For some operation systems, the programming languages Python and Perl are also supported by DISLIN. DISLIN is free for the Linux and FreeBSD operating systems and for the MS-DOS and Windows 95/NT compilers GCC, G77 and ELF90. Other DISLIN versions are available at low prices and can be tested free of charge.
 * [[http://code.enthought.com/projects/mayavi/|Mayavi]] Starting from Mayavi2, the 3D data visualization program Mayavi is fully scriptable from Python, can be integrated in larger applications, and exposes a simple pylab/matlab-like interface for plotting arrays.
 * [[http://newcenturycomputers.net/projects/gdmodule.html|gdmodule]] GD is a graphics library for the creation of GIF pictures, written by Thomas Boutell. gdmodule is an Python extension for this library. It can do lines, arcs, fills, fonts and can also manipulate other GIF pictures. Included in the gdmodule is a graphing module, which can produce line plots from data.
 * [[ftp://ftp-icf.llnl.gov/pub/python|Gist]] Extension to the gist graphics library, which is part of another numeric environment named [ftp://ftp-icf.llnl.gov/pub/Yorick yorick]. It can produce line, contour, surface plots on quadrilateral meshes. On top of the low-level interface the people from LLNL have build an object-oriented interface which can also do isosurface and 3D slicing plots together with light and script based animation. The interface is well documented. The package is now part of the LLNL Python distribution. Gist originally ran only under Unix-like operating systems. The latest source and a Windows installer are available from the [[http://bonsai.ims.u-tokyo.ac.jp/~mdehoon/software/python/|University of Tokyo]].
Line 15: Line 32:
     * [http://old.scipy.org/site_content/chaco Chaco] is a device-independent 2D plotting package based on the DisplayPDF API
     being developed for Python by [http://www.enthought.com/ Enthought] with support from the [http://www.stsci.edu/resources/ Space Science Telescope Institute].
     * Konrad Hinsen has some plotting support in his [http://starship.python.net/~hinsen/ScientificPython/ ScientificPython] package, for
     example TkPlotCanvas.
     * Michael Haggerty has [http://gnuplot-py.sourceforge.net/ a Gnuplot module] that interfaces with [http://www.gnuplot.info the GNUPLOT package].
     * [http://php.iupui.edu/~mmiller3/python/#plotwrap plot_wrap] A
     module by Mike Miller which wraps the functions in
     [http://www.gnu.org/software/plotutils/plotutils.html the GNU plotutils] package.
     * [http://www.tcltk.com/blt/ BLT] BLT is an
     extension to the tk widgets that can produce X/Y plots and bar
     charts. The BLT package can be used through
     [http://pmw.sourceforge.net/ the Pmw package], a framework for
     the creation of megawidgets built on top of Tkinter.
     * [http://pyqwt.sourceforge.net/ PyQwt] is a set of Python bindings for the
     Qwt C++ class library which extends the Qt framework with widgets
     for scientific and engineering applications.
     * [http://www.linmpi.mpg.de/dislin/ DISLIN]
 * [[http://www.astro.caltech.edu/~tjp/pgplot/|pgplot]] Extension to the pgplot graphics library, a portable, device independent graphics package for making simple scientific graphs. The library is intended for making graphical images of publication quality with minimum effort on the part of the user. All functions are directly callable from Python, through the use of SWIG for wrapper code generation. Pgplot has drivers for many different graphics formats and devices, although there are problems with the MS-Windows driver.
 * [[http://people.freebsd.org/~rhh/py-opendx/index.html|Py-OpenDX]] OpenDX is the open-source version of the IBM Data Explorer (DX). DX is a visualization system providing a full set of tools for manipulating, rendering and animating data, especially 3D data from simulations or acquired from observations. It provides a GUI, a scripting interface and the API C libraries. Py-OpenDX is a Python binding for the OpenDX API. Currently only the DXLink library is wrapped. That wrapper allows one to start up a DX executive and communicate with it via the DXL API.
 * [[http://public.kitware.com/VTK/|VTK]] VTK is an OO-framework for visualisation, written in C++ with bindings to TCL, Python and Java. It's not really a plotting package, but a visualisation system, where one needs to program to get a picture. It's very huge and resource demanding and best used on hardware with good graphics performance. It uses mainly OpenGL for rendering, so it can not produce vector graphics or high quality postscript output. Besides of that VTK is very powerful and can produce really great views of your data.
 * [[http://rpy.sourceforge.net/|RPy]] -- a Python interface to [[http://www.r-project.org|the R programming language]]. R is a large, robust package for doing math and statistics; it includes many, many graphing options.
 * [[http://www.omegahat.org/RSPython/|R/SPlus Python Interface]]. Another R interface. Currently it allows Python code to call [[http://www.r-project.org/|R]] functions, and write R code to create Python objects and call Python functions and methods. This allows Python programmers unfamiliar with the syntax of R to easily use its functionality.
Line 33: Line 38:
     DISLIN is a high-level and easy to use graphics library for
     displaying data as curves, bar graphs, pie charts, 3D-color plots,
     surfaces, contours and maps. The software is available for several
     C, Fortran 77 and Fortran 90 compilers. For some operation systems,
     the programming languages Python and Perl are also supported by
     DISLIN.
 * [[http://pyx.sourceforge.net|PyX]] is a library for creating figures in Postscript and PDF, which uses TeX/LaTeX for the text output.
 * [[http://biggles.sourceforge.net/|Biggles]] is another plotting library that supports multiple output formats, as is [[http://piddle.sourceforge.net/|Piddle]].
 * [[http://home.gna.org/pychart/|Pychart]] is a library for creating EPS, PDF, PNG, and SVG charts. It supports line plots, bar plots, range-fill plots, and pie charts.
Line 40: Line 42:
     DISLIN is free for the Linux and FreeBSD operating systems and for
     the MS-DOS and Windows 95/NT compilers GCC, G77 and ELF90. Other
     DISLIN versions are available at low prices and can be tested free
     of charge.

     * [http://newcenturycomputers.net/projects/gdmodule.html gdmodule]

     GD is a graphics library for the creation of GIF pictures, written
     by Thomas Boutell. gdmodule is an Python extension for this
     library. It can do lines, arcs, fills, fonts and can also manipulate
     other GIF pictures. Included in the gdmodule is a graphing module,
     which can produce line plots from data.

     * [ftp://ftp-icf.llnl.gov/pub/python Gist]

     Extension to the gist graphics library, which is part of another
     numeric environment named [ftp://ftp-icf.llnl.gov/pub/Yorick
     yorick]. It can produce line, contour, surface plots on
     quadrilateral meshes. On top of the low-level interface the people
     from LLNL have build an object-oriented interface which can also do
     isosurface and 3D slicing plots together with light and script based
     animation. The interface is well documented. The package is now
     part of the LLNL Python distribution. Gist originally ran only
     under Unix-like operating systems. The latest source and a Windows
     installer are available from the
     [http://bonsai.ims.u-tokyo.ac.jp/~mdehoon/software/python/ University of Tokyo].

     * [http://www.astro.caltech.edu/~tjp/pgplot/ pgplot]

     Extension to the pgplot graphics library, a portable, device
     independent graphics package for making simple scientific
     graphs. The library is intended for making graphical images of
     publication quality with minimum effort on the part of the user. All
     functions are directly callable from Python, through the use of SWIG
     for wrapper code generation. Pgplot has drivers for many different
     graphics formats and devices, although there are problems with the
     MS-Windows driver.

     * [http://people.freebsd.org/~rhh/py-opendx/index.html Py-OpenDX]

     OpenDX is the open-source version of the IBM Data Explorer (DX). DX
     is a visualization system providing a full set of tools for
     manipulating, rendering and animating data, especially 3D data from
     simulations or acquired from observations. It provides a GUI, a
     scripting interface and the API C libraries. Py-OpenDX is a Python
     binding for the OpenDX API. Currently only the DXLink library is
     wrapped. That wrapper allows one to start up a DX executive and
     communicate with it via the DXL API.

     * [http://public.kitware.com/VTK/ VTK]

     VTK is an OO-framework for visualisation, written in C++ with
     bindings to TCL, Python and Java. It's not really a plotting
     package, but a visualisation system, where one needs to program to
     get a picture. It's very huge and resource demanding and best used
     on hardware with good graphics performance. It uses mainly OpenGL
     for rendering, so it can not produce vector graphics or high quality
     postscript output. Besides of that VTK is very powerful and can
     produce really great views of your data.

     * [http://rpy.sourceforge.net/ RPy] -- a Python interface to
     [http://www.r-project.org the R programming language].

     R is a large, robust package for doing math and statistics; it
     includes many, many graphing options.

     * [http://www.omegahat.org/RSPython/ R/SPlus Python Interface].

     Another R interface. Currently it allows Python code to call
     [http://www.r-project.org/ R] functions, and
     write R code to create Python objects and call Python functions and
     methods. This allows Python programmers unfamiliar with the syntax of R
     to easily use its functionality.


     * [http://matplotlib.sourceforge.net Matplotlib] is a pure Python
     plotting library designed to support publication quality plotting
     with a syntax familiar to Matlab users. All of the plotting commands
     can be accessed either via a functional interface familiar to Matlab
     users or an object oriented interface familiar to Python users, and
     several high resolution output formats are supported.

     * [http://pyx.sourceforge.net PyX] is a library for
     creating figures in Encapsulated PostScript.

     * [http://biggles.sourceforge.net/ Biggles] is another plotting
     library that supports multiple output formats, as is
     [http://piddle.sourceforge.net/ Piddle].

     * [http://www.hpl.hp.com/personal/Yasushi_Saito/pychart/ Pychart]
     is a library for creating EPS, PDF, PNG, and SVG charts. It supports
     line plots, bar plots, range-fill plots, and pie charts.

 * [[http://www.pyngl.ucar.edu/|PyNGL]] is a Python interface to the high quality 2D scientific visualizations in the [[http://www.ncl.ucar.edu|NCAR Command Language]] (NCL).
 * [[http://pygooglechart.slowchop.com/|pygooglechart]] is a Python interface to the [[http://code.google.com/apis/chart/|Google Chart API]].
 * [[http://whiff.sourceforge.net/|WHIFF]] includes built in support for generating Adobe Flash chart widgets using either the amCharts charting package or the Open Flash Chart package. The generated charts may be embedded in dynamic web pages.
 * [[http://www.pyqtgraph.org|PyQtGraph]] is a pure-python graphics library built on PyQt4 and numpy. It is intended for use in mathematics / scientific / engineering applications. The library is very fast due to its heavy leverage of numpy and Qt's graphicsView framework. Major features: 1) a feature-rich plotting system, and 2) an image display system with translate/scale/rotatable region-of-interest widgets.
 * [[http://pyla.codeplex.com|pyla]] is a set of pure-python 3 (3.x) libraries for 2D/3D plotting using Gnuplot, linear algebra (vector-matrix) operation, ode (ordinary differential equation) solvers, optimization and nonlinear algebraic equation solvers. It is in alpha release and its gplot library has been released. pyla-gplot is a very simple yet powerful library very similar to [[http://gnuplot-py.sourceforge.net/|Gnuplot.py]] but works under python 3.x and does not require Numpy.
 * [[http://tkrajina.github.com/cartesius/|cartesius]] is a small library for 2d coordinate system images.
Line 136: Line 50:

     * Janko Hauser maintains a list similar to this one of [http://starship.python.net/crew/jhauser/plot-res.html "Plotting with Python"]
     tools, from which much of the above was stolen (with permission).
     * There is an interface to the OpenGL library called [http://starship.python.net/~da/PyOpenGL/ PyOpenGL] that can be
     used to write sophisticated visualization tools from scratch.
     * The [http://fxpy.sourceforge.net/ FXPy] bindings to [http://www.cfdrc.com/FOX/fox.html the FOX GUI library] support OpenGL, so might be a good
     starting point for new applications.
 * There is an interface to the OpenGL library called [[http://starship.python.net/~da/PyOpenGL/|PyOpenGL]] that can be used to write sophisticated visualization tools from scratch.
 * The [[http://fxpy.sourceforge.net/|FXPy]] bindings to [[http://www.cfdrc.com/FOX/fox.html|the FOX GUI library]] support OpenGL, so might be a good starting point for new applications.

Graphical Representations of Data

Over the years many different plotting modules and packages have been developed for Python. For most of that time there was no clear favorite package, but recently matplotlib has become the most widely used. Nevertheless, many of the others are still available and may suit your tastes or needs better. Some of these are interfaces to existing plotting libraries while others are Python-centered new implementations.

Image Processing and Analysis

  • The PIL Toolkit provides a very powerful set of tools for manipulating images. Documentation

  • PyQtGraph is a pure-python graphics library built on PyQt4 and numpy. It is intended for use in mathematics / scientific / engineering applications. The library provides widgets and graphicsItems for displaying / analyzing live image data (including 16-bit) as well as translate/scale/rotatable region-of-interest widgets for interactively slicing numpy arrays. The library is very fast due to its heavy leverage of numpy and Qt's graphicsView framework.

Plotting Tools

  • Matplotlib is an Open Source plotting library designed to support interactive and publication quality plotting with a syntax familiar to Matlab users. Its interactive mode supports multiple windowing toolkits (currently: GTK, Tkinter, Qt, and wxWindows) as well as multiple noninteractive backends (PDF, postscript, SVG, antigrain geometry, and Cairo). Plots can be embedded within GUI applications or for non-interactive uses without any available display in batch mode. Matplotlib provides both a Matlab-like functional interface as well as an object oriented interface. IPython has a "pylab" mode which is specifically designed for interactive plotting with matplotlib.

  • Bokeh is a BSD licensed, open source Python interactive visualization platform that targets modern web browsers for presentation. Bokeh can create richly interactive visualizations and data applications, as standalone HTML documents, sophisticated server-backed applications, or inline in Jupyter Notebooks. Bokeh has an extensive User's Guide and other additional resources for learning:

  • Plotly is a collaborative browser-based plotting and analytics platform. You can generate graphs and analyze data from the in-browser Python sandbox (numpy supported) or the Plotly API (download here). Plotly supports interactive graphs with IPython notebooks. Graphs are interactive, can be styled with Python or the GUI, and sharable by link. Scripts, graphs, and data can be shared, collaboratively edited, and stored and run in Plotly.

  • GR is a universal framework for cross-platform visualization applications, ranging from publication quality 2D graphs to the representation of complex 3D scenes. GR provides both MATLAB-like convenience functions as well as a low-level functional interface. GR can be used in imperative programming systems or integrated into modern object-oriented systems, in particular those based on GUI toolkits (Qt, wxWidgets, Gtk) or interactive browser environments (Jupyter). GR can also be used as a backend for Matplotlib and speed up existing applications. The GR framework is especially suitable for real-time environments.

  • Veusz is a GPL scientific plotting package written in Python and PyQt, designed to create publication-quality output. Graphs are built up from simple components, and the program features an integrated command-line, GUI and scripting interface. Veusz can also be embedded in other Python programs, even those not using PyQt.

  • Visvis is a pure Python library for visualization of 1D to 4D data in an object oriented way. Essentially, visvis is an object oriented layer of Python on top of OpenGl, thereby combining the power of OpenGl with the usability of Python. A Matlab-like interface in the form of a set of functions allows easy creation of objects (e.g. plot(), imshow(), volshow(), surf()).

  • Chaco is a device-independent 2D plotting package based on a DisplayPDF API. It supports fast vector graphics rendering for interactive data analysis (read: fast live updating plots) and custom plot construction. Chaco is easy to embed in python GUI applications (wxWindows, Qt) and provides nice abstractions for overlays and tools (select regions, zoom/pan, cross-hairs, labels, data inspectors, etc.). Chaco is able to output to any raster format supported by PIL, as well as PDF, PostScript and SVG backends. See the gallery for screenshots and code examples.

  • diaGrabber is based on PyQtGraph and allows you to read, filter, process, interpolate and plot n-dimensional values from different sources (like libreOffice- or csv-files) and variable size. Through interactive reading it's also possible to evaluate streams in a kind of 'software-oscilloscope'.

  • KonradHinsen has some plotting support in his ScientificPython package, for example TkPlotCanvas.

  • Michael Haggerty has a Gnuplot module that interfaces with the GNUPLOT package.

  • plot_wrap A module by Mike Miller which wraps the functions in the GNU plotutils package.

  • BLT BLT is an extension to the tk widgets that can produce X/Y plots and bar charts. The BLT package can be used through the Pmw package, a framework for the creation of megawidgets built on top of Tkinter.

  • PyQwt is a set of Python bindings for the Qwt C++ class library which extends the Qt framework with widgets for scientific and engineering applications.

  • GUIQwt is a Python library based on Qwt providing efficient 2D data-plotting features (curve/image visualization and related tools) for interactive computing and signal/image processing application development.

  • DISLIN DISLIN is a high-level and easy to use graphics library for displaying data as curves, bar graphs, pie charts, 3D-color plots, surfaces, contours and maps. The software is available for several C, Fortran 77 and Fortran 90 compilers. For some operation systems, the programming languages Python and Perl are also supported by DISLIN. DISLIN is free for the Linux and FreeBSD operating systems and for the MS-DOS and Windows 95/NT compilers GCC, G77 and ELF90. Other DISLIN versions are available at low prices and can be tested free of charge.

  • Mayavi Starting from Mayavi2, the 3D data visualization program Mayavi is fully scriptable from Python, can be integrated in larger applications, and exposes a simple pylab/matlab-like interface for plotting arrays.

  • gdmodule GD is a graphics library for the creation of GIF pictures, written by Thomas Boutell. gdmodule is an Python extension for this library. It can do lines, arcs, fills, fonts and can also manipulate other GIF pictures. Included in the gdmodule is a graphing module, which can produce line plots from data.

  • Gist Extension to the gist graphics library, which is part of another numeric environment named [ftp://ftp-icf.llnl.gov/pub/Yorick yorick]. It can produce line, contour, surface plots on quadrilateral meshes. On top of the low-level interface the people from LLNL have build an object-oriented interface which can also do isosurface and 3D slicing plots together with light and script based animation. The interface is well documented. The package is now part of the LLNL Python distribution. Gist originally ran only under Unix-like operating systems. The latest source and a Windows installer are available from the University of Tokyo.

  • pgplot Extension to the pgplot graphics library, a portable, device independent graphics package for making simple scientific graphs. The library is intended for making graphical images of publication quality with minimum effort on the part of the user. All functions are directly callable from Python, through the use of SWIG for wrapper code generation. Pgplot has drivers for many different graphics formats and devices, although there are problems with the MS-Windows driver.

  • Py-OpenDX OpenDX is the open-source version of the IBM Data Explorer (DX). DX is a visualization system providing a full set of tools for manipulating, rendering and animating data, especially 3D data from simulations or acquired from observations. It provides a GUI, a scripting interface and the API C libraries. Py-OpenDX is a Python binding for the OpenDX API. Currently only the DXLink library is wrapped. That wrapper allows one to start up a DX executive and communicate with it via the DXL API.

  • VTK VTK is an OO-framework for visualisation, written in C++ with bindings to TCL, Python and Java. It's not really a plotting package, but a visualisation system, where one needs to program to get a picture. It's very huge and resource demanding and best used on hardware with good graphics performance. It uses mainly OpenGL for rendering, so it can not produce vector graphics or high quality postscript output. Besides of that VTK is very powerful and can produce really great views of your data.

  • RPy -- a Python interface to the R programming language. R is a large, robust package for doing math and statistics; it includes many, many graphing options.

  • R/SPlus Python Interface. Another R interface. Currently it allows Python code to call R functions, and write R code to create Python objects and call Python functions and methods. This allows Python programmers unfamiliar with the syntax of R to easily use its functionality.

  • PyX is a library for creating figures in Postscript and PDF, which uses TeX/LaTeX for the text output.

  • Biggles is another plotting library that supports multiple output formats, as is Piddle.

  • Pychart is a library for creating EPS, PDF, PNG, and SVG charts. It supports line plots, bar plots, range-fill plots, and pie charts.

  • PyNGL is a Python interface to the high quality 2D scientific visualizations in the NCAR Command Language (NCL).

  • pygooglechart is a Python interface to the Google Chart API.

  • WHIFF includes built in support for generating Adobe Flash chart widgets using either the amCharts charting package or the Open Flash Chart package. The generated charts may be embedded in dynamic web pages.

  • PyQtGraph is a pure-python graphics library built on PyQt4 and numpy. It is intended for use in mathematics / scientific / engineering applications. The library is very fast due to its heavy leverage of numpy and Qt's graphicsView framework. Major features: 1) a feature-rich plotting system, and 2) an image display system with translate/scale/rotatable region-of-interest widgets.

  • pyla is a set of pure-python 3 (3.x) libraries for 2D/3D plotting using Gnuplot, linear algebra (vector-matrix) operation, ode (ordinary differential equation) solvers, optimization and nonlinear algebraic equation solvers. It is in alpha release and its gplot library has been released. pyla-gplot is a very simple yet powerful library very similar to Gnuplot.py but works under python 3.x and does not require Numpy.

  • cartesius is a small library for 2d coordinate system images.

Also of Note

  • There is an interface to the OpenGL library called PyOpenGL that can be used to write sophisticated visualization tools from scratch.

  • The FXPy bindings to the FOX GUI library support OpenGL, so might be a good starting point for new applications.

NumericAndScientific/Plotting (last edited 2016-08-16 22:37:55 by BryanVandeven)

Unable to edit the page? See the FrontPage for instructions.