plotting large datasets

Rick Walker walker at omnisterra.com
Sat Aug 22 02:03:43 UTC 2009


> > I've got a need to plot "value vs time" data for 32 channels
> > simultaneously.  Gnuplot isn't up to the task (not enough uniqueness,
> > even mixing lines and points, or control - the graph is just a mess).
> > What else is there?

You might try the pdplot program at
http://www.omnisterra.com/walker/linux/pdplot/intro.htm

It takes ascii datafiles and plots them to X11, postscript or
PNG.  The file format is x,y ascii data interspersed with
commands like:

    title my plot
    xscale 1 time
    yscale 1 voltage
    0 0
    1 1
    3 3
    nextygraph
    yscale 1 current
    0 8
    2 2
    3 4
    nextygraph
    yscale 1 pressure
    0 -1
    3 3.99

the pdplot program is a daemon associated with a persistant
plot window.  You communicate with the daemon by sending data
to it with "pd".  For instance, to plot the above file you'd save
it as "myplot" and do one of the following:

    pd myplot
    cat myplot | pd

If you want to add new data to an already existing plot you cat
do it with "cat newdata | pd -n".

The general style and format works extremely well with awk(1) or
perl(1) for massaging ascii data files.

It's got a few rough edges because it is a brand new program, but
I promise to jump on any bug reports if you want to give it a try.

> > Ideally, I'd like something I can interact with - enable/disable
> > channels, highlight channels, change the time range, etc.  The data
> > comes from processed log files, so either file or API input is OK.

Sounds like a good use for Tcl/Tk.  Write a front end to pd()
with lots of options.  Each time you make a change, Tk runs
through the data a replots it with the desired format.

kind regards,
--
Rick Walker





More information about the fedora-list mailing list