根据列拆分gnuplot中的一行

时间:2014-12-24 00:40:35

标签: linux plot gnuplot

我有一堆这样的数据:

0 0 50.5 -3.39358e-05
0 0 150.5 5.11472e-06
0 0 250.5 -3.87604e-06
0 0 350.5 -2.54219e-05
0 0 450.5 3.92257e-06
0 0 550.5 0.00198317
0 0 650.5 -4.96953e-05
0 0 750.5 -3.60458e-05
0 0 850.5 -2.30878e-05
0 0 950.5 1.67545e-07
1 0 126.5 4.17028e-05
1 0 226.5 -1.43637e-05
1 0 326.5 1.42918e-06
1 0 426.5 1.18147e-05
1 0 526.5 0.0020478
1 0 626.5 1.58651e-06
1 0 726.5 3.18537e-05
1 0 826.5 2.47536e-05
1 0 926.5 -4.20655e-05

我想在gnuplot上绘制类似的内容:

plot file using 3:($4+$1*factor) with lines

但这给了我一条连续的所有数据。我希望$1的每个唯一值都有一行。即。$1=0所有数据的一条连续线,$1=1的另一条线,依此类推。如何在行中添加这样的不连续性?

1 个答案:

答案 0 :(得分:1)

只要第一列中的值发生更改(在Windows上无效),您就可以使用外部工具预处理数据以添加空行:

plot '< awk ''{if(x!=$1) {print ""}; x=$1;print}'' test.dat' using 3:($4 + $1*factor)

数据文件中的空行阻止gnuplot连接分离的数据点。