Как правильно преобразовать эпоху в удобочитаемое время в gnuplot?

У меня есть следующий фрагмент, чтобы иметь вывод графика через gnuplot.

set datafile separator ","

set title "Memory"
set xlabel "Values"
set ylabel "Date"
set ydata time
set timefmt "%H"
set format y "%d/%m/%Y"
set key left top
set grid

plot 'memory-memory-buffered_combined' using 0:2 titl "1" with lines,\
     'memory-memory-cached_combined' using 0:2 title "2" with lines
cat 
pause -1

Однако, когда у меня есть результат, он начинается с 1970 года.

Первые 5 строк CSV я читаю;

epoch,value
1478193413.596,72910
1478193473.412,134432
1478193413.158,65449
1478193411.929,60157

Итак, на самом деле это ноябрь 2016 года.

Какая часть моего сценария должна отличаться?

1 ответ

Решение

Ваша основная проблема заключается в том, что ваши данные о времени находятся в первом столбце файла, однако вы хотите использовать их в качестве y-данных, а не x-данных. Так что вам нужно построить using 2:1

Вторая проблема заключается в том, что ваш timefmt спецификатор должен быть %s (время эпохи: это формат ваших входных данных), а не %H,

Так

set datafile separator ","

set title "Memory"
set xlabel "Values"
set ylabel "Date"
set ydata time
set timefmt "%s"
set format y "%d/%m/%Y"
set key left top
set grid

plot 'data.csv' using 2:1 title "1" with lines

в результате чего

Другие вопросы по тегам