如何在gnuplot的任何处理时间内获取特定行中特定列的值?

时间:2014-11-14 01:02:57

标签: gnuplot

我得到的数据文件格式如下:

# begin
16 1
15 2
14 3
13 4
12 5
11 6

现在我想使用gnuplot通过点画一条线:

(1, (16/16))  (2, (16/15))  (3, (16/14)) ...  (6, (16/11)) 

如您所见,x轴是范围[1:6],Y轴对应于从第一列第一行中的数字(即本例中为16)获得的值除以数字第一列的每一行。

问题在于我不知道如何在第一行(16)的第一列获取数字的值,以便我可以做类似的事情

plot "datafile" using 2:(16/$1) with linespoints

我已经做了很多关于如何实现这一目标但没有运气的搜索。似乎gnuplot没有提供一些允许任意数据选择的灵活方法。任何想法如何做到这一点?或许我只是陷入一个不常见的问题?

提前感谢您的帮助。

1 个答案:

答案 0 :(得分:5)

您可以使用stats命令从数据文件中提取单个数值。使用every选项选择该行,该列包含using

col = 1
row = 0
stats 'datafile' every ::row::row using col nooutput
value = STATS_min

plot "datafile" using 2:(value/$1) w lp

注意,列编号从1开始,行编号从0开始(注释行被跳过,不计算在内)。