gnuplot,如何从一个文件连接具有多条3D线条的点?

gnuplot,如何从一个文件连接具有多条3D线条的点?,plot,gnuplot,Plot,Gnuplot,我不熟悉gnuplot,所以我真的很难处理它。我知道如何绘制为3D并使用列作为变量 无论如何,我的问题是如何连接具有相同距离值的点,但按下面的顺序连接这些点。例如,我的文件包含以下信息 #ID Rank Diatance x y z 25 2 50 13 14 39 34 1 50 19 90 23 23 3 50 54 87 12 48 1 143 78 40 36 38

我不熟悉gnuplot,所以我真的很难处理它。我知道如何绘制为3D并使用列作为变量

无论如何,我的问题是如何连接具有相同距离值的点,但按下面的顺序连接这些点。例如,我的文件包含以下信息

#ID Rank Diatance   x   y   z
25   2    50        13  14  39
34   1    50        19  90  23
23   3    50        54  87  12
48   1    143       78  40  36
38   5    143       10  76  54
96   4    143       64  76  88
104  3    143       19  82  74
201  2    143       30  89  47
76   1    604       103 298 263
97   2    604       111 103 133
87   4    604       215 222 132
109  5    604       175 184 158
283  3    604       102 108 155
294  6    604       530 456 384
您可以看到有3种不同的距离,每种距离的3组都有自己的等级。我想做的是连接那些只有相同距离值的点(第3列),但同时我想让这些点按等级顺序连接(第2列),所以我认为预期的结果是,在3D绘图中,只有3条线(或曲线)


请帮帮我

您必须先按距离,然后按秩对数据文件进行排序,并在距离值更改时插入空行。我不确定您是否可以在gnuplot中完成所有这些操作,但在unix ish系统上,您可以轻松调用标准工具来完成这些操作:

splot "<cat test.dat | sort -n -k 3 -k 2 | awk '{if ($3 != olddistance) {print \"\"}; print; olddistance=$3}'" u 4:5:6 w lp

splot“您必须先按距离,然后按秩对数据文件进行排序,并在距离值更改时插入空行。我不确定您是否可以从gnuplot中执行所有这些操作,但在unix ish系统上,您可以轻松调用标准工具为您执行此操作:

splot "<cat test.dat | sort -n -k 3 -k 2 | awk '{if ($3 != olddistance) {print \"\"}; print; olddistance=$3}'" u 4:5:6 w lp

splot“啊。。我用的是Windows,所以就像你说的,我很难做到这一点。即使我试着用你的代码,它也不起作用:(我不知道问题出在哪里。啊..我用的是Windows,所以就像你说的,我很难做到这一点。即使我试着用你的代码,它也不起作用:(我不知道问题出在哪里。)。