2013-06-22 81 views
0

我得有上千行的数据文件,像这样:gnuplot的:xtics标签间隔

Sat_May_25_09:38:22_2013 9 
Sat_May_25_09:38:35_2013 2 
Sat_May_25_09:38:55_2013 2 
Sat_May_25_09:39:30_2013 2 
Sat_May_25_09:40:25_2013 2 
Sat_May_25_09:41:21_2013 2 
Sat_May_25_09:42:16_2013 2 
Sat_May_25_09:43:11_2013 2 
Sat_May_25_09:44:07_2013 2 
Sat_May_25_09:45:03_2013 2 

的第一列是xaxis标签的,而第二列是为yaxis值。我怎样才能在xaxis间隔内画出这个图?例如,在上面的数据集中,我只想添加奇数xaxis标签,但仍然绘制每个yaxis的值。换句话说,xaxis标签的范围。

我该如何做到这一点?

+1

为什么不使用gnuplot的时间数据绘制数据,然后让gnuplot选择x轴位置? – mgilson

+0

我将时间格式更改为Unix Epoch时间,这使得事情变得更容易,不仅在'gnuplot'上,而且在任何其他程序上。这是日期测量的好标准。 – dfernan

回答

2

假设你的数据在一个文件t.dat

set xdata time 
set timefmt "%b_%d_%H:%M:%S_%Y" 
set format x "%d/%m/%y\n%H:%M" 
plot "< sed 's/[^_]*_//' t.dat" using 1:2 title "y value" 

timefmt设置输入时间格式。不幸的是,日期名称不是公认的值,所以"< sed 's/[^_]*_//' t.dat"重定向sed命令的输出,该命令会删除当天和第一个下划线作为输入。

format将输出设置为换行符时间,将其更改为获取所需的格式。

+0

我实际上已经发现了'timefmt'这种无法识别的格式,这是一个缺点。尽管如此,你的回答提供了关于“sed”管道的输入。很有意思。 – dfernan