Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/dart/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何使用gnuplot绘制数据文件中的特定数据子集?_Gnuplot - Fatal编程技术网

如何使用gnuplot绘制数据文件中的特定数据子集?

如何使用gnuplot绘制数据文件中的特定数据子集?,gnuplot,Gnuplot,我需要从数据文件中的一行绘制一个点,它有许多其他的行和两行。我不知道如何在gnuplot中选择一行,而不是整个数据文件。有什么建议吗?你必须过滤掉。在gnuplot中,这是通过关键字every完成的 由于您没有提供要在此处打印的文件,因此基于此数据文件data.dat,可能会有提示: 10 62 11 95 12 74 13 33 14 70 在第三条直线(12,74)处绘制点,如下所示: plot 'data.dat' every ::2::2 w p 根据文件结构,这可能会有所不同 如果

我需要从数据文件中的一行绘制一个点,它有许多其他的行和两行。我不知道如何在gnuplot中选择一行,而不是整个数据文件。有什么建议吗?

你必须过滤掉。在gnuplot中,这是通过关键字
every
完成的

由于您没有提供要在此处打印的文件,因此基于此数据文件
data.dat
,可能会有提示:

10 62
11 95
12 74
13 33
14 70
在第三条直线(12,74)处绘制点,如下所示:

plot 'data.dat' every ::2::2 w p
根据文件结构,这可能会有所不同

如果您必须多次这样做,最好设置一个变量:

n=2
plot 'data.dat' every ::n::n w p
因此,一旦绘制,您可以执行以下操作:

n=3; replot
n=10; replot
...
请仔细阅读gnuplot中的
help every
命令

如果要绘制的点不是以行号为特征的,而是以一列中的某个值为特征的,您可以在
中使用此技巧

plot '-' using (($1==0)?$1:1/0):2 with points
-1 1
0  2
1  3
e
这可用于绘制,例如仅具有正x坐标的点(更改为
($1>=0)?$1:1/0
),或使用包含行号的
$0
伪列,以比
每行更通用的方式选择特定行:

plot 'data.dat' using (((int($0)%3!=0)?$1:1/0):2 with points
这里我们绘制了3行中的2行,当然您也可以使用
($0==line)?$1:1/0
仅选择一行