disipyl Project Overview

Author: Paul M. Magwene
Email: paul.magwene@yale.edu

Description

disipyl is an object-oriented wrapper around the DISLIN plotting library. disipyl provides a set of classes which represent various aspects of DISLIN plots, as well as providing some easy to use classes for creating commonly used plot formats (e.g. scatter plots, histograms, 3-D surface plots). A major goal in designing the library was to facilitate interactive data exploration and plot creation.

A longer list of the feature provided by disipyl can be found here.

What's DISLIN?

DISLIN is a powerful and flexible multiplatform (Win32, Unix, Linux, etc.) programming library designed for displaying scientific data. DISLIN's author, Helmut Michels, has made available a free DISLIN plotting extension for the Python programming language (see the DISLIN homepage for more details).

The default Python interface provided with DISLIN is very terse, and essentially mirrors it's C and Fortran interfaces. To create a complex plot the user must make a series of function calls in just the right order. Despite it's terseness, when employed effectively, DISLIN can churn out detailed, publication quality plots. disipyl makes it easy to do so!

What's Included?

In addition to the wrapper classes and functions, disipyl includes a variety of "extensions":

History

disipyl descends from pxDislin, a previous wrapper-library I designed. disipyl shares much in common with pxDislin but represents a complete rewrite. disipyl presents a much cleaner interface, and is easier to maintain and extend. By starting "from scratch" I was able to keep the things I liked about pxDislin while ridding myself of the extra baggage that had accumulated around my earlier design.

The library has been tested on WinNT and FreeBSD, but I anticipate that it should work on any platform which can make use of Python, Numpy, and the DISLIN python extensions.

Status

This is the first public release of disipyl, and as such it should be regarded as "beta" quality code. I've spent a lot of time using the library myself, and I've tried to create demos and test code which puts the library through its paces. Nevertheless, there are bound to be bugs. I'm interested in quickly squashing those bugs and moving rapidly towards a stable 1.0 release. In order to do this I will need lots of feedback from users. Please make sure to submit any and all bug reports. I am shooting for a turn around of less than 24 hours for fixes on bug reports submitted with example code.

I believe the interface is pretty much stable. There maybe a few tweaks and fiddlings here and there, but barring any major complaints from users, all the base classes should be pretty close to done.

What's Next?

A few classes could use some more attention (e.g. PieChart), and a small number of DISLIN features that I've never used (e.g., map plots) need to be wrapped. It would also be useful to improve the error checking.