Как правильно преобразовать эпоху в удобочитаемое время в 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