emacs-orgmode
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [O] Plotting (with gnuplot) using dates timestamps


From: Nick Dokos
Subject: Re: [O] Plotting (with gnuplot) using dates timestamps
Date: Mon, 26 Mar 2012 10:37:12 -0400

Steven Buczkowski <address@hidden> wrote:

> On Mon, 2012-03-26 at 15:37 +0200, Alan Schmitt wrote:
> > Hello,
> > 
> > I'm trying to plot the following table, but the dates part is all wrong. Is 
> > there a way to tell gnuplot what the date format is?
> > 
> > #+tblname: data-table
> > | Date             |     HP |     HC |
> > |------------------+--------+--------|
> > | [2011-08-20 Sat] | 006815 | 008399 |
> > | [2011-08-29 Mon] | 006840 | 008438 |
> > | [2011-09-11 Sun] | 006946 | 008552 |
> > | [2011-12-11 Sun] | 007805 | 009603 |
> > | [2012-03-04 Sun] | 008800 | 010826 |
> > | [2012-03-11 Sun] | 008876 | 010930 |
> > | [2012-03-25 Sun] | 009015 | 011121 |
> > 
> 
> In straight gnuplot, I would do something like the following:
> 
> gnuplot> set xdata time
> gnuplot> set timefmt '[%Y-%m-%d %a]'
> 

The "set xdata time" line is indeed what makes the difference:
without it, gnuplot doesn't know that this is a time series.
But there are some additional details: when babel prepares the
data, the data file that will be fed to gnuplot ends up like this
(not sure this is documented though):

,----
| 2011-08-20-00:00:00   6815    8399
| 2011-08-29-00:00:00   6840    8438
| 2011-09-11-00:00:00   6946    8552
| 2011-12-11-00:00:00   7805    9603
| 2012-03-04-00:00:00   8800    10826
| 2012-03-11-00:00:00   8876    10930
| 2012-03-25-00:00:00   9015    11121
`----

so the script should look something like this:

--8<---------------cut here---------------start------------->8---
reset

set xdata time
set timefmt "%Y-%m-%d-%H:%M:%S"
set format x "%Y-%m-%d"
set xrange ["2011-08-01":"2012-04-01"]

set title "Consumption"
set size ratio square

set xlabel "Date"

set yrange [6800:9100]
set ylabel "HP"
set ytics nomirror

set y2range [8000:12000]
set y2label "HC"
set y2tics nomirror

set style data points
plot data using 1:2 axis x1y1 title 'HP', \
     data using 1:3 axis x1y2 title 'HC'
--8<---------------cut here---------------end--------------->8---


BTW, going into gnuplot and saying "help time/date" helps :-)
I have trouble navigating the gnuplot help system, but I think
it is complete.

Nick



reply via email to

[Prev in Thread] Current Thread [Next in Thread]