Things that it would be nice to have done before the GNOME 1.4 Apps release. * Finish the Pie Chart config dialog. * Add support for categorical data to Pie Charts. * Finish Bar Chart config dialog. * Add support for categorical data to Bar Charts. * Un-"demo"ify Pie and Bar charts. ------------------------------------------------------------------------------- Stuff Jon Wants To Do Relatively Soon: (1) Plot Plug-ins: * Add Parallel axis plots * Add Price Bars (OHLC) * Make rotated & multi-line text work right. * Allow for error bars on bar charts. * Get line/curve graphs working properly. The main barrier is efficient rasterization algorithms for wide anti-aliased lines. (2) Data types: * Price (OHLC) Sequences * finish Date Sequences * proper treatment for Categorical Data. (and integration into existing plot types) * 2D Curve (deriv from GuppiData) / 2D Sampled Curve (deriv from GuppiSeq) & integration into existing plot types (3) Generalized curve fitting framework, with curve fitting plug-in system. (4) Use the symbolic math code that is already in there for function plotting. Other stuff that it would be nice to do. (1) An XML format for importing/exporting data. (2) Data export plug-ins (parallel to the import plug-ins) (3) N-dimensional array data types, which good support for slicing. (4) Numerical Python integration. (5) GUI enhancements. (6) Plug-ins: * A "scribble" plug-in for annotation with circles, arrows, text, etc. * Dot plots * Polar (7) Images as a data type, with appropriate plug-ins and image processing operations. (8) Lots of statistical functionality. (9) More exotic data types: GuppiSeqComplex, GuppiSeqIPAddr, ... (10) Scripting. * Perl bindings. * Support for using Guppi as a library/extension for guile/python/perl rather than the other way around. (11) Session management. (12) User-level documentation. (13) Data importers for other data formats. ------------------------------------------------------------------------------- On legend placement: trow: If I graph (x,x*x) in gnuemric as a bar chart it's a surprisingly useful thing to do, though you end up just totally homebrew kludging what is basically an HTML marshalling protocol for Scheme functions. trow: the graph naturally has a lot of unused space for small x. trow: shouldn't the legend take some of this space instead of using trow: a lot of space on its own? gmorten: yes gmorten: except automatic legend-placement is fairly tricky. gmorten: Most plot programs either punt the issue entirely and force you to place all legends by hand. whose responsibility is it (will it be)? gmorten: or they just plop it down in one place (like gnuplot), whether it covers up data or not. gmorten: I haven't implemented draggable objects in guppi yet. I'll probably ultimately adopt the "plop it down somewhere standard, but let users drag it around" approach. trow: Am I just missing something or do guppi barcharts not support x and y axis labeling? I mean I can put row-labels on the X axis, but if those are (for example) dates it would be nice to have an X-axis label saying "Date". grib: Oh, we do those. Maybe I just don't expose that via guppitank, though. grib: If you try the scatterplot demo in the app, you'll see the axes get labeled by the name of the data set. trow: I am quite certain that "try one of these five places" will do great in practice. Assumming you can measure overlap. Simple, not perfect. gmorten: Measuring overlap is tricky. Doable -- but the only obvious way I can think of do it would be a god-awful hack. I recall from years back that a simple scheme to label line graphs (N lines in one chart) did great. No overlap in most cases. gmorten: I'd have to extend the API so that you could query objects about their whitespace. not very appealing. gmorten: ...and have them return some standard value describing their "coverage" of a box. Say from 0 to 1. gmorten: The problem is much easier for a specific graph type, like line graphs. But to do it more generally is tricky. gmorten: And I don't want to start duplicating code and having a line-graph legend, pie-chart legend, scatter-plot legend, etc. trow: perhaps have a good find-a-nice-spot member, then? s/member/virtual method/ gmorten: Actually doing the "coverage" thing might not be too bad. Then for a plot you could query each of the four corners of a plot, looking for empty space. If none was found, the legend could be put in the margin. gmorten: Or you could (optionally) force the legend to be in the plot, and choose the corner where "coverage" is minimized. gmorten: That would actually be pretty fucking cool. indeed. patent it! gmorten: ...or at least get it into Guppi ASAP, as "prior art". trow: just cut-and-paste the irc log into TODO.