绘制3维不等长的数据

时间:2016-02-18 08:53:59

标签: gnuplot

我是gnuplot的新手,请原谅我看起来很简单。我有一个如下所示的数据文件,我想绘制一个这样的图表:

enter image description here

t       x = 0.00        0.20        0.40        0.60        0.80        1.00
0.00    0.000000    0.640000    0.960000    0.960000    0.640000    0.000000
0.02    0.000000    0.480000    0.800000    0.800000    0.480000    0.000000
0.04    0.000000    0.400000    0.640000    0.640000    0.400000    0.000000
0.06    0.000000    0.320000    0.520000    0.520000    0.320000    0.000000
0.08    0.000000    0.260000    0.420000    0.420000    0.260000    0.000000
0.10    0.000000    0.210000    0.340000    0.340000    0.210000    0.000000
0.12    0.000000    0.170000    0.275000    0.275000    0.170000    0.000000
0.14    0.000000    0.137500    0.222500    0.222500    0.137500    0.000000
0.16    0.000000    0.111250    0.180000    0.180000    0.111250    0.000000
0.18    0.000000    0.090000    0.145625    0.145625    0.090000    0.000000
0.20    0.000000    0.072813    0.117813    0.117813    0.072813    0.000000

GNU octave等效命令是这样的:

mesh(tplot,xplot,ttplot);

1 个答案:

答案 0 :(得分:3)

与许多事情一样,如果你知道如何,这很简单。如果从数据文件中删除x =t,则可以直接绘制,例如:

0           0.00        0.20        0.40        0.60        0.80        1.00
0.00    0.000000    0.640000    0.960000    0.960000    0.640000    0.000000
0.02    0.000000    0.480000    0.800000    0.800000    0.480000    0.000000
0.04    0.000000    0.400000    0.640000    0.640000    0.400000    0.000000
0.06    0.000000    0.320000    0.520000    0.520000    0.320000    0.000000
0.08    0.000000    0.260000    0.420000    0.420000    0.260000    0.000000
0.10    0.000000    0.210000    0.340000    0.340000    0.210000    0.000000
0.12    0.000000    0.170000    0.275000    0.275000    0.170000    0.000000
0.14    0.000000    0.137500    0.222500    0.222500    0.137500    0.000000
0.16    0.000000    0.111250    0.180000    0.180000    0.111250    0.000000
0.18    0.000000    0.090000    0.145625    0.145625    0.090000    0.000000
0.20    0.000000    0.072813    0.117813    0.117813    0.072813    0.000000

然后,数据可以被解释为“非均匀”矩阵,尽管它是均匀的。这很有用,因为它正确读取第一行和第一列。有关详情,请参阅help matrixhelp matrix nonuniform。例如:

echo 'splot "data" nonuniform matrix with lines' | gnuplot --persist

给我:

Plot of data matrix

要使它类似于GNU Octave mesh命令生成的输出,请执行以下操作:

set xlabel "x"
set ylabel "t"
set zlabel "u"
set view 20,210
set border 4095 lw 2
set hidden3d
set xyplane 0
set autoscale fix
set nokey
set notics
splot "data" nonuniform matrix lt -1 lw 2 with lines

结果是:

Plot that is more similar to the original