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:

Linkpost for July

Effective Altruism

via Thing of Things July 3, 2026

Agentic test processes, LLM benchmarks, and other notes on agentic coding from Galapagos Island

I've been using AI fairly heavily since last November and the whole thing is a funny experience. An agent will do something that, if a human did it, you'd immediately fire them. My reaction, of course, is to act as if this is great and spin up a t…

via Posts on July 3, 2026

Variable fonts aren't universally supported

I make a lot of webpages. I also use Lockdown Mode on iOS and MacOS for a bit of extra security. Sometimes I realize that I forgot to test on Safari and it looks like crap, or I test and don’t notice that there’s been a problem for months (as was the case…

via Home June 27, 2026

more     (via openring)