2012-06-06 2 views
10

Lets' принять это как файл данных:Как использовать GnuPlot для построения графика временных рядов из даты и времени файла CSV, хранящихся в отдельных столбцах?

2012-06-01, 01:00, 1 
2012-06-01, 02:00, 2 
2012-06-01, 03:00, 4 
2012-06-01, 04:00, 3 
... 
2012-06-02, 01:00, 5 
2012-06-02, 02:00, 2 
2012-06-02, 03:00, 1 
2012-06-02, 04:00, 1 
... 

Я знаю, как установить timefmt и xdata для построения временных рядов, когда дата и время представлены с одного поля, но как построить это с GNUPLOT, когда время и дата хранятся в отдельных столбцах?

ответ

14

Не слишком по-другому, чем если бы они были пространства ...

set timefmt '%Y-%m-%d, %H:%M' 
set xdata time 
set datafile sep ',' 
plot 'test.dat' u 1:3 w lines 

Я не знаю, если вы использовали timefmt с пробелами в ней, прежде чем либо (для регулярного разделенных пробелами файлы данных), но в в этом случае вы указываете столбец, где начинаются данные времени - gnuplot автоматически просматривает, однако, сколько столбцов ему нужно заполнить полный формат времени. Конечно, вам нужна полная спецификация использования (в этом случае это означает, что данные находятся в третьем столбце - обратите внимание, а не на второй, как вы могли бы ожидать).

(проверено на Gnuplot 4.4 - OS X)

+0

Сейчас я использую запятую файлы данных, изотоп 8601 формат даты (например, 2012-06-06T14: 54Z) и никаких пробелов вообще. Но мне понадобится поддержка разделенных запятыми и запятыми значений даты и времени в файлах, разделенных запятыми. Спасибо за решение, я попробую. – Ivan

+0

@ Иван - проблем нет. Надеюсь, это сработает для вас. – mgilson

+0

Я также рекомендую 'set format x '% Y-% m-% d \\ n% H:% M" ' – Notinlist

5

Running Arch Linux Gnuplot 4.6 3

номера патчей

Я не мог получить фрагмент кода mgilson, чтобы работать. мне нужно установить xrange, прежде чем он перестанет жаловаться

all points y value undefined! 

мне пришлось

set xrange["2012-06-01, 01:00":"2012-06-02, 05:00"] 

и, наконец, получил довольно участок

+1

Пожалуйста, напишите, что в качестве комментария к ответу от mgilson это не ответ сам по себе. И для меня его фрагмент отлично работает с 4.6.3 (Debian). – Christoph

+4

Я не могу. Не хватает очков репутации. –