[SciPy-user] ANN: Veusz 0.5 - a scientific plotting package

Jeremy Sanders jeremy at jeremysanders.net
Mon Apr 18 04:51:37 CDT 2005

On Sun, 17 Apr 2005, Alan G Isaac wrote:

> Let me provide a sample "user's perspective".
> 1. Since this is posted to the SciPy list, I assume the
>   author is aware that many people on this list are using
>   Matplotlib, which is excellent.  Others I take it are
>   using Chaco. Others are using Gnuplot.py.

Firstly, I started this project at the end of 2003, when I wasn't aware of
matplotlib. I got it to the stage of 80% there before finding matplotlib.
I have to admit I've never heard of Chaco.

After discovering matplotlib, I started a project (aka veusz2) which used
matplotlib as its backend. After several months I abandoned this project
due to several issues I had with matplotlib. Please be aware that these
are subjective, and I realise that matplotlib is a pretty powerful
plotting package

1. Every step of the way along, I hit several bugs in matplotlib which
    broke my program. I decided it simply wasn't a stable base to start
    my plotting application on, and resumed writing my own backend.

    I didn't feel like wading through matplotlib to fix bugs, before I
    could get started on my program.

    I also didn't see much in the way of documentation, and had to start
    reading the code to find out what it wanted.

2. The whole way matplotlib is designed is a little baroque. It seemed
    very strange to me why some things were objects and some were
    implemented as methods to other objects.

    Also, there were different methods which did the same things but which
    not overlap in functionality. Why were there two functions to plot
    points, for instance, and why couldn't I plot the points one function
    allowed with the other?

3. It was slow. Very slow. Making a program where parameters changed were
    immediately reflected on the screen was impossible. I believe this is
    better than it was then.
4. Matplotlib was an absolute pig to get installed in a location other
    than the one it wanted. I spent half a wasted day trying to get it
    installed on one of my computers.

5. When matplotlib broke, you never found out why. I tried putting some
    LaTeX in an equation, but I never found out why the LaTeX I put in
    never worked.

6. It was a nightmare to connect my object-oriented user interface to
    Matplotlib. The only reliable way I could get things to work was
    to construct the whole graph from scratch every time a parameter
    changed. The interfacing code was pretty gunky.

7. There was no Qt backend at the time, and Gtk was painful to use
    compared to PyQt.

> 2. Yet there is no direct comparison with these other
>   packages.  I have to guess that the key point is the GUI
>   interface, whose facilities are not described in detail.

Okay the advantages over other plotting interfaces are these:

1. GUI and scripting interface which work in exactly the same way.
    Items on a graph are "widgets" which can exist as children of other

    Using the GUI, you build up a plot out of the widgets, read in
    data, and quickly adjust the settings of the plot to make it look
    just how you like. You can move round the widgets, even between

2. Saved data files are scripts which can easily be modified by the user

3. It's pretty quick, and you get instant feedback when you modify things.

4. Container widgets to hold graphs and other widgets to make complex

5. Multiple pages possible for storing sets of associated plots.

  3. I'm generally willing to try out new software if
>   I understand well enough that it has cool new potential,
>   but from this posting I do not.

Absolutely. I wrote this software as I was annoyed with every other bit of
plotting code I've tried (maybe besides Biggles, but that appears dead and
uses GNU Plotlib). I'm making it easy to use and the people I know who've
tried it say it's good. Have a look if you want a nice interface to making
good looking plots.

> 4. Perhaps most importantly: there are two very serious
>   projects being discussed regularly on this list (mostly
>   Matplotlib but also Chaco).  So naturally I wonder if the
>   author might not more fruitfully be finding a way to
>   collaborate with these.  Not that it is really any of my
>   business of course, but as I said I am just providing
>   a sample "user's perspective".

Sure. There may be licence issues here of course. I have a half-done
version of my matplotlib based code if anyone wanted to resurrect that.
I think multiple projects are quite often a good idea, as ideas can be
shared from one to the other. Ideas are often more interesting than code.
In my experience, the plotting code isn't that hard to do. The hardest
part was making the axes look good.

The biggest effort is now on the UI, and none of the other projects have
that facility, so I'm not really overlapping there.

It might not be that hard to write an interface layer between matplotlib
and my UI now there's a Qt backend. You'd need to wrap matplotlib to
expose sets of objects and properties.



Jeremy Sanders <jeremy at jeremysanders.net>
http://www.jeremysanders.net/                Cambridge, UK
Public Key Server PGP Key ID: E1AAE053

More information about the SciPy-user mailing list