如何在GNUplot中绘制特定的行

时间:2012-06-04 12:59:11

标签: gnuplot

我有一个两列文件,其中有1000000个条目,即1000000行,但是我不想绘制所有数据,我只想绘制每100行的点数?如何在gnuplot中这样做?另外,是否可以在gnuplot中指定一些特定的行?

1 个答案:

答案 0 :(得分:26)

这里至少有两个选项。首先,查看help datafile every

的文档
plot 'datafile' every 100 using 1:2 

另一种选择是将伪列0(help datafile using pseudo)与三元运算符(help ternary)结合使用,并知道gnuplot静默忽略未定义的数字来过滤行:

plot 'datafile' u ( ((int($0)%100)==0)? $1 : 1/0 ):2

如果使用宏,可以让它更容易理解:

set macro
line_number='int($0)'
plot 'datafile' u ( ( ( @line_number % 100 ) == 0 ) ? $1 : 1/0 ) : 2

请注意,我只包括第二个,因为你可以(原则上)使用它从数据文件中选择非常奇怪的行号(例如1,100,1000,10000),你不能每次都使用它 - 例如

plot 'datafile' u ( ((@line_number == 1 || @line_number == 100 || @line_number == 1000 ) $1:1/0)):2

另请参阅this question

的答案