On 12/12/06, Nate Lowrie <[EMAIL PROTECTED]> wrote: > On 12/12/06, Paul McNett <[EMAIL PROTECTED]> wrote: > > Nate Lowrie wrote: > > > Any suggestions on how to implement the graphs? I didn't get a response > > > so > > > I thought I'd try this again. > > > > Thanks for working on this stuff. The GL canvas will be a nice thing to > > have. We definitely need graphing, but I don't think we should do it > > ourselves. We should conduct an orderly sampling of what is available, > > and use the one that fits in best. I seem to recall a graphing package > > that was ui-agnostic that could draw to Tkinter, wx, qt, encapsulated > > postscript, whatever. The number of dependencies doesn't matter much, if > > it works well and fits with Dabo.
Ok, so I did some heavy research on this. All of the graphing libraries except matplotlib were clearly in Alpha or Beta. Here's a general summary of each one: Graphite - Extremely buggy when I played with it. Fair amount of graphs. Nothing released since 1999 so that automatically excludes it in my opinion. The package looks to be dead, stopped development in Alpha. ChartDirector - Wonderful interface. Well maintained in active development. No backend for GUI rendering. Could be useful if we can figure out how to interface to a GUI. I doubt we'd be able to get interactive graphs with it. pygraphlib - somewhat skimpy interface. Seems to be stable enough. No longer in active development though. matplotlib - Feature rich. Tons of graphs. Well thought out, modular design. Ability to interface with several backends including pygtk, wxPython, Tkinter, postscript, gdmodule, libart/paint, svg, agg (antigrain geometry) and Cairo are supported. Documentation has come a long way since I last looked at it. Go to http://matplotlib.sourceforge.net/screenshots.html and you can see some screen shots. I think that matplotlib is our winner by far. The backends can change while the api for the graphs stay the same, which should allow us to shift the backend to a GUI toolkit of our choosing easily. I like the way they define their Figures and Axes classes and we can probably get away with creating a main graph object and then just subclassing from there to get specialties like Pie charts and bar graphs. Should I put these in the uiwx folder or another graphs folder? Implementation of specific backends into dabo objects will probably be GUI specific, so wx might be a good idea. Let me know what you guys think. Cheers, Nate L. > > > > I do believe that you are speaking of Matplotlib. It was meant to be > standalone with a scripting syntax similiar to Matlab. However, due > to it's popularity they added backends. It's a wonderful, rich > library. I used the Wx backend a couple of times for graphs. It was > fairly good if you generated a graph one time and didn't change it. I > tried doing some realtime updating and couldn't get things like the > zoom and axis to change. I don't know what I was doing wrong, but the > builtin utility bar provided by matplotlib provided me with a quick > but ungainly fix, so I used that and stopped persuing the solution. > This package is definitely worth pursuing. > > There is a library called Graphite that I found. I'll play with it > some. Found a python version of GNUPlot. Again I'll have to play > with it. Both look rather skimpy compared to matplotlib though. > > One serious alternative is a program called ChartDirector. I am not > sure of the licensing, but it looks like it would be ui-agnostic. Has > some wonderful feature rich charts though. > > I think that our best bet would be matplotlib given it's active > development, rich interface, and GUI toolkit backend interfaces. > Seems like it's come a long way since when I used it 6 months ago. > Give me a few days to check everything out. > > Cheers, > > Nate L. > > > > > > -- > > pkm ~ http://paulmcnett.com > > > > > > _______________________________________________ > > Post Messages to: [email protected] > > Subscription Maintenance: http://leafe.com/mailman/listinfo/dabo-dev > > > _______________________________________________ Post Messages to: [email protected] Subscription Maintenance: http://leafe.com/mailman/listinfo/dabo-dev
