[SciPy-user] ANN: Veusz 0.5 - a scientific plotting package
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
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
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