gnuplot,如何从文件中连接3D中多行的点?

时间:2017-11-27 12:15:59

标签: 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   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行(或曲线)。

请帮帮我!

1 个答案:

答案 0 :(得分:0)

您必须先按距离排序数据文件,然后按排名排序,并在距离值更改时插入空白行。我不确定您是否可以在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

enter image description here

如果您想要连接每个组的行使用不同的颜色,可以使用

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