通过<start>设置xtics,gnuplot中的<incr>无效

时间:2019-12-01 04:57:06

标签: gnuplot

我用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 ...”的标签。

那么我的代码有什么问题?以及如何纠正呢?谢谢。 enter image description here

2 个答案:

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