Gnuplot表面网格只在x方向显示,为什么不y方向?

时间:2016-04-22 19:20:09

标签: gnuplot

我想要在3d表面网格中显示很多数据。当我

splot "surface.csv" u 1:2:7 w p lc rgb "black" ps 0.2

我明白了

enter image description here

当我

splot "surface.csv" u 1:2:7 w l lc rgb "black"

我明白了

enter image description here

我想在x和y方向上连接所有数据点的线。当然这有可能吗?

我可以做些什么来实现y方向线?我的数据文件是这样组织的(请注意,我可能在同一数据块中没有相同数量的点)

0 1 z1
0 2 z2
0 3 z3
.
.
.
0 n zn

20 1 z1
20 2 z2
20 3 z3
.
.
.
20 m zm

.
.
.

Octave命令出错:

octave:1> d=load('surfacefull.csv');
octave:2> [y i]=sort(d(:,2));
octave:3> d_t=d(:,i);
error: A(I,J): column index out of bounds; value 905 out of bound 6
octave:3> dlmwrite('surfacefull_t.csv',d_t," ");
error: 'd_t' undefined near line 1 column 30
error: evaluating argument list element number 2

1 个答案:

答案 0 :(得分:1)

有两种方法可以做到这一点,我不确定你在问什么。

<强> 1) 如果您想在统一网格上插入数据,那么您可以使用dgrid3dhttp://gnuplot.sourceforge.net/docs_4.2/node177.html

此处显示了一些示例:http://www.gnuplot.info/demo/dgrid3d.html

<强> 2) 如果您希望所有线条与没有统一网格的线条相交,就像您到目前为止所做的那样,只需将数据转换为八度音程(或matlab),以便第二个空间维度变化最慢,然后绘制为

splot "surface.csv"   u 1:2:5 w l lc rgb "black", \
      "surface_t.csv" u 1:2:5 w l lc rgb "black"

如果你链接了一些数据我能够展示一个例子

使用上面的plot命令完成以下操作,其中surface_t.csv文件在Gnu Octave中转换为

d=load('surfacefull.csv');
[y i]=sort(d(:,2));
d_t=d(i,:);
dlmwrite('surfacefull_t.csv',d_t," ");

我有一个脚本来记录间距,但你可以手动完成。