Simple Plotting Software?

October 12th, 2011
tech
When trying to understand data, looking at it in graphical form is incredibly useful. When looking at raw data it is difficult to get a sense of the overall patterns. Summary statistics can be misleading. Yesterday I wanted to look at some data. My graphing process was:
    # prepare data on the command line into a stream of lines as "xval yval"
    $ emit_data | head -n 3
    4 7
    8 9
    2 200

    # use awk to send the xvals to one file and the yvals to another
    $ (emit_data | awk '{print $1}' | tr '\n' ' ' ; echo) > xvals.txt
    $ (emit_data | awk '{print $2}' | tr '\n' ' ' ; echo) > yvals.txt

    # in octave open the files as two vectors and plot them
    $ octave
    > xvals = load("xvals.txt");
    > yvals = load("yvals.txt");
    > plot(xvals, yvals);

As you can tell, this is annoying. I would prefer to be able to simply write:

    $ emit_data | plot

Is there a program that can do this?

Update 2011-10-12: Adam Yie writes that gnuplot can do what I want:
   emit_data | gnuplot -persist -e "plot '-'"
I've now added an alias to my ~/.bash_profile:
  alias plot='gnuplot -persist -e "plot '\'-\''"'

Some other features that would be nice, and that I would probably include if writing this myself:

  • interpret single column data as if it were the output of "emit_data | cat -n"
  • if given filenames instead of standard input, plot them on the same chart ( plot <(emit_data_a) <(emit_data_b))
  • allow non-numeric X vals
  • interpret data in the format 'YYYY-MM-DD" as dates

Further, it would be nice to be able to specify some options, though I definitely don't want them required:

  • points vs lines
  • x and y ranges
  • chart width and height
  • colors
  • output file if not for display
  • interpret the xvalues as seconds since 1970-01-01

I would probably write this with gnuplot as a backend, and with aquaterm as the mac display terminal (so I wouldn't need to start X11).

Comment via: google plus, facebook, substack

Recent posts on blogs I like:

On Apologizing To Kids

Everyone is so weird about apologizing to children.

via Thing of Things August 25, 2025

Against the Teapot Hold in Contra Dancing

The teapot hold is the most dangerous common contra dancing figure, so I’ve been avoiding it. The teapot hold, sometimes called a "courtesy turn hold,” requires one dancer to connect with their hand behind their back. When I realized I could avoid put…

via Emma Azelborn August 25, 2025

Little Puppy

She's very little and she likes to do stuff with me. She also likes to bark around and run around and jump around. She also likes to go to places with me and that's all I have.

via Nora Wise's Blog Posts August 23, 2025

more     (via openring)