2015-12-30 5 views
2

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

Можно ли иметь файл данных в формате:

% Y-% m-% d Значение

% Y-% m-% d Значение

но есть Gnuplot создать график, в котором ось х представляет собой число дней со дня отсчета?

ответ

2

Это не идеально, и, вероятно, лучший способ, но это работает (я предполагаю, что колонка 1 ваша колонка дата и столбец 2 Ваше значение оси у):

plot "data.txt" u ((strptime("%Y-%m-%d",strcol(1))-strptime("%Y-%m-%d","2015-12-10"))/86400.0):2 

Функция strptime превращает временную строку во внутреннее представление времени (количество секунд с некоторой ссылочной даты), а функция strcol читает строку из столбца 1. Мы принимаем разницу с «нулевой» датой (здесь мы используем 10 декабря) , Это даст разницу в секундах, поэтому мы делимся на количество секунд в день, 86400 (мы используем 86400.0, чтобы он не обрезал целые числа в разделе). Это приведет к тому, что ось x будет содержать число дней с момента отсчета.

+0

Это отлично работает! Спасибо за помощь! – Chah

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