• Posts
  • RSS
  • ◂◂RSS
  • Contact

  • Timestamp range in gnuplot

    June 20th, 2011
    gnuplot, tech  [html]
    In gnuplot, you might have some data you'd like to graph that has timestamps:
         1308369601 0.15
         1308369661 0.05
         1308369721 0.43
         1308369781 0.41
         ...
      
    You can see many places that to tell gnuplot your xaxis is in seconds since the epoch you use:
         set xdata time
         set timefmt "%s"
         set format x "%H:%M"     # or anything else
         set xlabel "time"
      
    If you want to limit the range, you might think you could do something like:
         set xrange [1308369932:1308373241]
      
    If you try this, you'll get an error like:
         "plot.gnp", line 16: all points y value undefined!
      
    To fix this, you need to subtract 946684800 from the start and end of your xrange:
         set xrange [1308369932-946684800:1308373241-946684800]
      
    What is going on here? It turns out that unlike everything sensible in the unix world, gnuplot calculates time in seconds since the beginning of the year 2000 instead of the year 1970. So it interprets [1308369932:1308373241] as early morning 2041-06-17 instead of early morning 2011-06-18. The magic number, 946684800, is the number of seconds between 2000-01-01 and 1970-01-01.

    I understand gnuplot was trying to be platform independent, but it's pretty annoying now that the 1970 epoch has become dominant.

    Recent posts on blogs I like:

    Fireside Friday: January 1, 2021

    Happy New Year! Good riddance 2020! Fireside this week. Next week, we’ll be finishing up our look at the Dothraki of A Song of Ice and Fire and Game of Thrones by looking at how they are shown to fight and comparing that to the fighting patterns of actual…

    via A Collection of Unmitigated Pedantry January 1, 2021

    Streets Before Trust

    There’s an emerging mentality among left-wing urban planners in the US called “trust before streets.” It’s a terrible idea that should disappear, a culmination of about 50 or 60 years of learned helplessness in the American public sector. Too many people …

    via Pedestrian Observations January 1, 2021

    Systems design explains the world: volume 1

    "Systems design" is a branch of study that tries to find universal architectural patterns that are valid across disciplines. You might think that's not a possibility. Back in university, students used to tease the Systems Design Engineers, ca…

    via apenwarr December 29, 2020

    more     (via openring)


  • Posts
  • RSS
  • ◂◂RSS
  • Contact