[Numpy-discussion] Status of Numeric (and plotting in particular)

Kuzminski, Stefan R SKuzminski at fairisaac.com
Wed Jan 21 05:06:02 CST 2004


I'm working on a commercial product that produces publication quality
plots from data contained in Numeric arrays.  I also concluded that
Chaco was a bit more involved than I needed.  My question is what
requirements are not met by the other available plotting packages such
as..

http://matplotlib.sourceforge.net/ 

These don't have every bell and whistle ( esp. when it comes to the
interactive 'properties' dialog ) but as you point out there is a dark
side to those features. 

There are a number of quite capable plotting packages for Python,
diversity is good up to a point, but this space ( Plotting packages )
seems ripe for a shakeout.  

Stefan


-----Original Message-----
From: numpy-discussion-admin at lists.sourceforge.net
[mailto:numpy-discussion-admin at lists.sourceforge.net] On Behalf Of Perry
Greenfield
Sent: Tuesday, January 20, 2004 7:02 PM
To: Chris Barker
Cc: numpy-discussion at lists.sourceforge.net
Subject: Re: [Numpy-discussion] Status of Numeric (and plotting in
particular)


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 
than scipy
integration).

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. 
The effort
started with our funding Enthought to start the effort. We had a number 
of requirements
for a plotting package that weren't met by any existing package, and it 
didn't appear
that any would be easily modified to our needs. The requirements we had 
(off the
top of my head) included:

1) easy portability to graphics devices *and* different windowing 
systems.
2) it had to run on all major platforms including Solaris, Linux, Macs, 
and Windows.
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 
very high
    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 
make producing
    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 
interface issues
for plot parameters, and handling the relationships of these parameters 
between
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 
suitable for
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 
still aim
to achieve the goals I listed above. The problem we think is that chaco 
was also
tasked to try to achieve extra goals with regard interactive 
capabilities that
were in the end, not really important to STScI and it's community, but 
were
important to Enthought (and presumably its clients, and the scipy 
community).

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 
aspects
of plots, one could bring up editors for the attributes of that plot 
element,
such as color, line style, font, size, etc. Many other interactive 
aspects
have been enhanced as well. Much recent work by Enthought is going into 
extending
the capabilities even further by adding gui kinds of features (e.g., 
widgets of
all sorts).

Unfortunately these capabilities have come at a price, namely 
complexity. We
have found it difficult to track the ongoing changes to chaco to become 
proficient
enough to contribute significantly by adding capabilities we have 
needed.
Perhaps that argues that we aren't competent to do so. To a certain 
degree,
that is probably is true. There is no doubt that Enthought has some 
very talented
software engineers working on chaco and related products. On the other 
hand,
our goal is to have this software be accessible by scientists in 
general, and
particularly astronomers. Chaco is complex enough that we think that is 
a
serious problem. Customizing it's behavior requires a very large 
investment of
time understanding how it works, far beyond what most astronomers are 
willing
to tackle (at least that's my impression).

Much of this complexity (and many of its ongoing changes) is to support 
the
interactive capabilities, and to make it responsive enough that plots 
can
update themselves quickly enough not to lead to annoying lags. But 
frankly,
we just want something to render plots on the screen and on hardcopy. 
Outside
of being able to obtain cursor coordinates, we find many of the 
interactive
capabilities as secondary in importance. When most astronomers want to 
tune
a plot (either for publication quality, or for batch processing), they 
usually
want to be able to reproduce the adjustments for new data, for which 
the interactive
attribute editing capability is of little use. Generally they would 
like to
script the the more customized plots so that they can be easily 
modified and
reused.

So it seems that it is too difficult to accomplish all these aims 
within one
package. We would like to develop a different plotting package (using 
many of
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 
simple
functionality available within a month (though when we make it public 
may
take a bit longer). It will be open source and we hope significantly 
simpler
than chaco. It will not focus on speed (well, we want fairly fast 
display times
for plots of a reasonable number of points, but we don't need video 
refresh
rates). If your interest in plotting matches ours, then this may be for 
you.
We will welcome contributions and comments once we get it off the 
ground.
(We are calling it pyxis by the way).

Enthought is continuing to work on chaco and at some point that will be 
mature,
and will be capable of some sophisticated things. That may be more 
appropriate
for some than what we are working on.

Perry Greenfield



-------------------------------------------------------
The SF.Net email is sponsored by EclipseCon 2004
Premiere Conference on Open Tools Development and Integration
See the breadth of Eclipse activity. February 3-5 in Anaheim, CA.
http://www.eclipsecon.org/osdn
_______________________________________________
Numpy-discussion mailing list
Numpy-discussion at lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/numpy-discussion




More information about the Numpy-discussion mailing list