我有以下代码片段可以通过 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