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

Recent posts on blogs I like:

On Polarization

weirdmaxxing as a dating strategy

via Thing of Things March 14, 2025

Frozen meals are actually great

I cook most of my meals and am pretty frugal. I do a lot of meal prep (cooking in bulk), so I don’t have to cook every day in order to have food. But sometimes I run out of my meal prep or just want something different, and don’t have energy to cook somet…

via Home March 7, 2025

Breakfast Over February Break

Over February break I made breakfast for me and Nora three days in a row. Normally, my dad makes me, Nora, and Lily breakfast, but my dad and Lily were on a trip and my mom wasn't up yet so I was basically the only one in the house who was awake and cou…

via Anna Wise's Blog Posts March 1, 2025

more     (via openring)