我用gnuplot绘制以下内容:
$Data <<EOD
time_,value
1-23:59:58,1
1-23:59:59,2
2-00:00:00,3
2-00:00:01,4
2-00:00:02,5
EOD
set term png size 800,600
set output "ask.png"
set datafile separator comma
set grid
set xdata time
set timefmt "%d-%H:%M:%S"
set format x "%H:%M:%S"
set xtics nomirror
set autoscale xfix
set autoscale x2fix
startnumber=1
xticdata=2
mxticdata=2
set xtics xticdata rotate
set mxtics mxticdata
set x2data
set x2tics startnumber, xticdata rotate
set mx2tics mxticdata
set link x2 via x+1 inverse x-1
plot $Data using 1:2 title columnheader(2)
set output
包含近50,000条记录的第2列的数据是参数值。 set link
必须用于对齐x轴和x2轴。我想显示必须与时间(第1列)相关的计数器/索引的x2tic标签。
输出没问题,但是从附图中可以看到x2轴上的标签是大数字,这不是我想要的。我想获取类似“ 1、3、5 ...”的标签。
答案 0 :(得分:1)
最快的解决办法是
set link x2 via x-86397 inverse x+86397
但这取决于您在第2列中拥有什么时间步长以及拥有多少数字。如果您的时间步长严格固定且为1秒,而第2列只是递增计数,则第2列是多余的。
时间数据在内部以1970年1月1日00:00:00秒为单位进行处理。
一天有86400秒。选中help time/date
。
答案 1 :(得分:1)
如果想法是无论第2列与第1列之间的数值关系如何,都应使用第2列的内容标记x2轴,则可以使用:
set xdata time
set timefmt "%d-%H:%M:%S"
set format x "%H:%M:%S"
set xtics nomirror
set x2tics nomirror
set link x2
plot $Data using 1:2:x2ticlabels( int($0+1)%2 ? strcol(2) : "" ) title columnheader(2)
这将为每个数据点创建一个x2轴刻度标签。设置为空的偶数为1,奇数为2。