Timestamp range in gnuplot

June 20th, 2011
gnuplot, tech
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.

Comment via: substack

Recent posts on blogs I like:

Coping with shame

[Mod note: comments on this post about how I’m a good person who should feel better about myself will be deleted.

via Thing of Things August 4, 2026

Using AI to analyze life patterns

If you’re anything like me, you may have a lot of notes from various introspective activities – annual / monthly reviews, worksheets, therapy notes, etc. Often these notes are just gathering dust in a paper folder or some forgotten corner of Google Drive.…

via Victoria Krakovna July 30, 2026

Exercises in benchmarking and evals, part 7: DeepSWE, Senior SWE-Bench, napkin math, and winter tires

This is part of a series of exercises on benchmarking, evals, and experimental design (1, 2, 3, 4, 5, 6)1. We're going to look at three questions, which are presented before the answers to give you time to think about the questions before seeing the a…

via Posts on July 23, 2026

more     (via openring)