• Posts
  • RSS
  • ◂◂RSS
  • Contact

  • Simple Plotting Software?

    October 12th, 2011
    tech  [html]
    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:

    What I've been doing instead of writing

    I’ve been too busy with work to write much recently, but in lieu of that, here’s a batch of links to other stuff I’ve been doing elsewhere. The thing I’m most excited about: Wave raises $200m from Sequoia, Stripe, Founders Fund and Ribbit at a $1.7b valuati…

    via benkuhn.net September 11, 2021

    Some reasons to measure

    A question I get asked with some frequency is: why bother measuring X, why not build something instead? More bluntly, in a recent conversation with a newsletter author, his comment on some future measurement projects I wanted to do (in the same vein as ot…

    via Posts on Dan Luu August 27, 2021

    Songs about terrible relationships

    [Spoilers for several old musicals.] TV Tropes lists dozens of examples of the “I want” song (where the hero of a musical sings about their dream of escaping their small surroundings). After watching a bunch of musicals on maternity leave, I’m wondering h…

    via The whole sky July 17, 2021

    more     (via openring)


  • Posts
  • RSS
  • ◂◂RSS
  • Contact