Gnuplot对相同x值的y值求和

Gnuplot对相同x值的y值求和,gnuplot,Gnuplot,我有一个如下所示的数据集: 0 1 0.1 0 0 0.1 0 1 0.1 1 0 0.2 0 1 0.2 1 0 0.2 ... 现在,我想对表第三列中的每个不同值执行以下操作: 0.1的示例: 第一列值总和:0+0+0=0 第二列值总和:1+0+1=2 现在我想减去这两个2-0=2,在最后一步中,将它们除以出现次数 2/3=0.667 与0.2相同,然后我的绘图应在x=0.1,y=0.667处绘图 我希望我的问题与示例有关,可以理解。您可以使用平滑唯一选项来精确执行此操作:将属于相同x值的

我有一个如下所示的数据集:

0 1 0.1
0 0 0.1
0 1 0.1
1 0 0.2
0 1 0.2
1 0 0.2
...
现在,我想对表第三列中的每个不同值执行以下操作:

0.1的示例:

第一列值总和:0+0+0=0

第二列值总和:1+0+1=2

现在我想减去这两个2-0=2,在最后一步中,将它们除以出现次数

2/3=0.667

与0.2相同,然后我的绘图应在x=0.1,y=0.667处绘图


我希望我的问题与示例有关,可以理解。

您可以使用
平滑唯一
选项来精确执行此操作:将属于相同x值的所有y值相加,然后将结果除以发生次数。对于执行操作的第二列,使用第二列和第一列之间的差异:

plot 'file.txt' using 3:($2 - $1) smooth unique
然而,看起来你会遇到一个奇怪的错误。只有在数据文件开头插入空行或注释行时,此选项才正确:

使用以下
file.txt文件的结果

#
0 1 0.1
0 0 0.1
0 1 0.1
1 0 0.2
0 1 0.2
1 0 0.2


作为一个恼人的旁注,这只是因为您只是在减去值,即您并不是真的将第(2)列中的所有项目相加,然后减去第(1)列中所有项目的总和,实际上您是将所有(项目2-项目1)相加。由于这是一个线性运算,sum(item2)-sum(item1)与sum(item2-item1)相同,但如果您想做其他事情,例如sum(item2)/sum(item1),则需要更复杂的方法。