我想要在3d表面网格中显示很多数据。当我
splot "surface.csv" u 1:2:7 w p lc rgb "black" ps 0.2
我明白了
当我
splot "surface.csv" u 1:2:7 w l lc rgb "black"
我明白了
我想在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
答案 0 :(得分:1)
有两种方法可以做到这一点,我不确定你在问什么。
<强> 1)强>
如果您想在统一网格上插入数据,那么您可以使用dgrid3d
:http://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," ");
我有一个脚本来记录间距,但你可以手动完成。