• 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:

    More on the Deutschlandtakt

    The Deutschlandtakt plans are out now. They cover investment through 2040, but even beforehand, there’s a plan for something like a national integrated timetable by 2030, with trains connecting the major cities every 30 minutes rather than hourly. But the…

    via Pedestrian Observations July 1, 2020

    How do cars fare in crash tests they're not specifically optimized for?

    Any time you have a benchmark that gets taken seriously, some people will start gaming the benchmark. Some famous examples in computing are the CPU benchmark specfp and video game benchmarks. With specfp, Sun managed to increase its score on 179.art (a su…

    via Posts on Dan Luu June 30, 2020

    Quick note on the name of this blog

    When I was 21 a friend introduced me to a volume of poems by the 14th-century Persian poet Hafiz, translated by Daniel Ladinsky. I loved them, and eventually named this blog for one of my favorite ones. At some point I read more and found that Ladinsky’s …

    via The whole sky June 21, 2020

    more     (via openring)


  • Posts
  • RSS
  • ◂◂RSS
  • Contact