Many applications need to present data using charts and graphs. There seems to be a scarcity of good Open Source Python charting libraries.
Please add any solution and experiences you have with it here.
Sean True of WebReply, Inc. ported JpGraph to Python. JpGraph is a substantial presentation graphics module written in PHP by Johan Persson. Sean wrote:
"JpGraph is a fully OO graph library which makes it easy to both draw a "quick and dirty" graph with a minimum of code and quite complex graphs which requires a very fine grain of control. The library tries to assign sensible default values for most parameters hence making the learning curve quite flat since for most of the time very few commands is required to draw graphs with a pleasing aesthetic look." -- Johan Persson
Our port of JpGraph depends on gdmodule, and of gd itself. Both are included in the tar file. The port also expects Freetype and appropriate TTF fonts, which are not included. Gantt charts and image maps still need work, but the package in general pretty well. Sample output is available from the download site.
Download from http://metagram.webreply.com
Note that the PHP version of JpGraph is licensed under the QPL 1.0 (Qt Free Licensee) for non-commercial, open-source and educational use and JpGraph Professional License for commercial or proprietary use. What this means for the Python port is an open question.
ChartDirector looks very similar to JpGraph, but is from Advanced Software Engineering Ltd.
The package seems to be easy to use, and the licensing cost seems reasonable. However, the lack of source code is worrying given what can happen to companies.
From the DISLIN homepage: http://www.linmpi.mpg.de/dislin/
DISLIN is a high-level plotting library for displaying data as curves, polar plots, bar graphs, pie charts, 3D-color plots, surfaces, contours and maps.
DISLIN is intended to be a powerful and easy to use software package for scientists and programmers. There are only a few graphics routines with a short parameter list needed to display the desired graphical output. A large variety of parameter setting routines can then be called to create individually customized graphics.
DISLIN is free for the operating systems Linux and FreeBSD and for the MS-DOS and Windows compilers GCC, G77 and LCC. The DISLIN plotting extensions for Java, Python and Perl and the DISLIN interpreter DISGCL can be used freely on all operating systems. Other DISLIN versions are available at low prices and can be tested free of charge.
The charts that DISLIN generates favors correct, scientific presentation over incorrect business presentation (which often distorts the interpretation of the underlying data). This means it wil l do amazing graphs, but not flashy ones.
The Python interface seems awkward to use.
Prabhu Ramachandran, author of MayaVi writes:
MayaVi is a free, easy to use scientific data visualizer. It is written in Python and uses the amazing Visualization Toolkit (VTK) for the graphics. It provides a GUI written using Tkinter. MayaVi is free and distributed under the conditions of the BSD license. It is also cross platform and should run on any platform where both Python and VTK are available (which is almost any *nix, Mac OSX or Windows).
An intriguing data visualizer written in Python, so it should feel right to Pythonistas. This looks easier to use than DISLIN. The documentation looks excellent (so far), and the license looks right.
-- EdmundLian - 16 Nov 2002
ReportLab includes a charting package. It is easy to use and very complete. The charts are not as fancy as the commercial options outlined above, but I actually like them better at this point. Open source in Python too.