[Numpy-discussion] Status of Numeric (and plotting in particular)
perry at stsci.edu
Tue Jan 20 19:04:02 CST 2004
On Tuesday, January 20, 2004, at 06:08 PM, Chris Barker wrote:
>> Perry Greenfield writes:
>> > It has been our intention to port scipy to use numarray soon. This
>> > work has been delayed somewhat since our current focus is on
>> > plotting.
> That is good news. What plotting package are you working on? Last I
> heard Chaco had turned into Enthought's (and STSci) in-house Windows
> only package. (Not because they want it that way, but because they
> don't have funding to make it work on other platforms, and support the
> broader community).
> I don't see anything new on the SciPy page after August '03.
> Frankly, weak plotting is a bigger deal to me than array performance.
Yes, I agree completely (and why we are giving plotting higher priority
I really was hoping to raise this issue later, but I might as well
address it since
the Numeric/numarray issue has raised it indirectly.
Chaco had been the focus of our plotting efforts for more than a year.
started with our funding Enthought to start the effort. We had a number
for a plotting package that weren't met by any existing package, and it
that any would be easily modified to our needs. The requirements we had
top of my head) included:
1) easy portability to graphics devices *and* different windowing
2) it had to run on all major platforms including Solaris, Linux, Macs,
3) the graphics had to be embedable within gui widgets.
4) it had to allow cursor interactions, at least to the point of being
able to read
cursor positions from python.
5) it had to be open source and preferably not gpl (though the latter
was probably not
a show stopper for us)
6) It also had to be customizable to the point of being able to produce
quality hardcopy plots suitable for publication.
7) object oriented plotting framework capable of sensible composition.
8) command line interface akin to that available in matlab or IDL to
quick interactive plots very, very easy.
Developing something that satisfies these is not at all trivial.
In the process Enthought has expended much energy developing chaco,
kiva and traits
(and lately they are working on yet more extensions); easily much more
of the effort
has come from sources other than STScI. Kiva is the back end that
presents a uniform
api for different graphics devices. Traits handles many of the user
for plot parameters, and handling the relationships of these parameters
plot components. Chaco is the higher level plotting software that
provides the traditional
plotting capabilities for 2-d data. Much has been invested in chaco.
It is with some regret that we (STScI) have concluded that chaco is not
our needs and that we need to take a different approach (or at least
give it a try).
I'll take some space to explain why.
The short answer is that in the end we think it was too ambitious. We
to achieve the goals I listed above. The problem we think is that chaco
tasked to try to achieve extra goals with regard interactive
were in the end, not really important to STScI and it's community, but
important to Enthought (and presumably its clients, and the scipy
More specifically, a lot of thought and work went into making many
aspects of the
plots could be interactively modified. That is, by clicking on various
of plots, one could bring up editors for the attributes of that plot
such as color, line style, font, size, etc. Many other interactive
have been enhanced as well. Much recent work by Enthought is going into
the capabilities even further by adding gui kinds of features (e.g.,
Unfortunately these capabilities have come at a price, namely
have found it difficult to track the ongoing changes to chaco to become
enough to contribute significantly by adding capabilities we have
Perhaps that argues that we aren't competent to do so. To a certain
that is probably is true. There is no doubt that Enthought has some
software engineers working on chaco and related products. On the other
our goal is to have this software be accessible by scientists in
particularly astronomers. Chaco is complex enough that we think that is
serious problem. Customizing it's behavior requires a very large
time understanding how it works, far beyond what most astronomers are
to tackle (at least that's my impression).
Much of this complexity (and many of its ongoing changes) is to support
interactive capabilities, and to make it responsive enough that plots
update themselves quickly enough not to lead to annoying lags. But
we just want something to render plots on the screen and on hardcopy.
of being able to obtain cursor coordinates, we find many of the
capabilities as secondary in importance. When most astronomers want to
a plot (either for publication quality, or for batch processing), they
want to be able to reproduce the adjustments for new data, for which
attribute editing capability is of little use. Generally they would
script the the more customized plots so that they can be easily
So it seems that it is too difficult to accomplish all these aims
package. We would like to develop a different plotting package (using
ideas from chaco, and some code) based on kiva and the traits package.
We have started on this over the past month, and hope to have some
functionality available within a month (though when we make it public
take a bit longer). It will be open source and we hope significantly
than chaco. It will not focus on speed (well, we want fairly fast
for plots of a reasonable number of points, but we don't need video
rates). If your interest in plotting matches ours, then this may be for
We will welcome contributions and comments once we get it off the
(We are calling it pyxis by the way).
Enthought is continuing to work on chaco and at some point that will be
and will be capable of some sophisticated things. That may be more
for some than what we are working on.
More information about the Numpy-discussion