gnuplot,如何从一个文件连接具有多条3D线条的点?
我不熟悉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
#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,所以就像你说的,我很难做到这一点。即使我试着用你的代码,它也不起作用:(我不知道问题出在哪里。)。