Gnuplot: как построить график даты / времени - PullRequest
8 голосов
/ 23 февраля 2011

Я бы хотел построить данные такого рода:

  • Ось X: даты
  • Ось Y: длина

Данные будут выглядеть так:

22/02 51:10
25/02 63:10
01/03 50:55
23/03 52:10

Я уже сделал это для оси X:

set xdata time
set timefmt "%d/%m"

Но я не знаю, как управлять осью Y.

Ответы [ 2 ]

5 голосов
/ 24 февраля 2011

Как сказал Том , вы можете использовать только один таймфм.Однако, если есть возможность разбить ваши данные на несколько столбцов, например:

22/02 51 10
25/02 63 10
01/03 50 55
23/03 52 10

, вы можете построить график времени прямым расчетом, например:

plot 'file' u 1:($2 + $3/60)

для построения графика.минут, или как это:

plot 'file' u 1:($2/60 + $3/3600)

для построения часов.

3 голосов
/ 23 февраля 2011

С ?xdata

В настоящее время существует только один timefmt, что означает, что все столбцы времени / даты должны соответствовать этому формату.

Так что вам нужночтобы несколько изменить ваши данные для соответствия одному параметру.

что-то вроде

00:00:22/02 51:10:22/02
00:00:25/02 63:10:22/02
00:00:01/03 50:55:22/02
00:00:23/03 52:10:22/02

Обратите внимание, что вы можете использовать инструменты командной строки, чтобы сделать это в gnuplot, см. здесь

После того, как файл отредактирован, вы можете прочитать его примерно так

set xdata time
set ydata time
set timefmt "%M:%S:%d/%m"
set format x "%d/%m"
set format y "%M:%S"
plot "date_time.dat" u 1:2 w l
...