2013-06-04 4 views
0

Я пытался использовать gnuplot для построения CSV-файла, содержащего дату и время, но он приносил некоторые странные результаты, когда он работал (в основном только одна строка прямо в середине графика). Это код:Установка xrange в gnuplot, производящий странный результат

set xdata time 
set timefmt '%Y-%m-%d %H:%M:%s' 
set xrange["2013-05-29 00:00:00":"2013-06-04 00:00:00"] 
set datafile separator ',' 
plot 'weather.csv' using 1:2 

Это образец данных:

2013-05-29 18:30:00,20.0 
2013-05-29 21:29:00,14.0 
2013-05-29 22:29:00,13.0 
2013-05-29 23:29:00,12.0 
2013-05-30 08:28:00,13.0 
2013-05-30 09:30:00,14.0 

Становилось ошибку:

Can't plot with an empty x range! 

Так что я напечатал команды в командной строке:

gnuplot> set xdata time 
gnuplot> set timefmt '%Y-%m-%d %H:%M:%s' 
gnuplot> set xrange["2013-05-29 00:00:00":"2013-06-04 00:00:00"] 
gnuplot> show xrange 

     set xdata time 
     set xrange [ "1970-01-01 00:00:-946684800" : "1970-01-01 00:00:-946684800" ] noreverse nowriteback 

gnuplot> show 

Что я делаю неправильно?

Благодаря

ответ

2

Это ваше timefmt определение.
Согласно this documentation, %s интерпретируется как

seconds since the Unix epoch (1970-01-01 00:00 UTC) 

Это объясняет выход из вашего show xrange, а также. Для этой интерпретации даты ваш xrange будет пустым.

Если вы используете %S (second, 0-60) вместо этого, ваш пример будет сюжет хорошо:

set timefmt '%Y-%m-%d %H:%M:%S' 
+0

Спасибо так много! Я чувствую себя глупым кроликом! –

+0

@PhilipKearns Не надо. Такие вещи случаются со всеми нами все время. – Schorsch

Смежные вопросы