如何在 gnuplot 中将纪元正确地转换为人类可读的时间

如何在 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 年开始的。

我正在读取的 csv 的前 5 行;

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

因此,实际上现在是 2016 年 11 月。

我的脚本的哪部分应该有所不同?

答案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

导致 用户数据的 GNUPLOT 图表

相关内容