绘制 3D 数据及其投影 - gnuplot

问题描述 投票:0回答:1

我正在尝试绘制 3D 数据集在其相应 xy、zy、zx 平面上的投影,但我没有找到任何相关信息。这似乎是一个被禁止的话题或者根本不可能做到。我附上一张图片作为例子enter image description here。我想要一个数据文件,但这里无法上传任何内容。因此,如果您想尝试的话,我将其粘贴在下面。第一上校。是频率,第二个是实部,第三个是虚部;我建议使用 1:2:3 绘图。

1.00E+05    173.026357  31.03390887
6.31E+04    180.723259  23.8603962
3.98E+04    184.1098959 19.11910457
2.51E+04    187.4965328 16.50215789
1.59E+04    190.8831696 15.27373233
1.00E+04    193.5001163 15.48616683
6.31E+03    197.1946293 16.81003397
3.98E+03    200.7352042 19.28843642
2.51E+03    205.3533454 23.0599184
1.59E+03    211.2029909 28.41696219
1.00E+03    217.9762647 35.7598067
6.31E+02    226.1349808 45.7503855
3.98E+02    236.6027675 59.32772063
2.51E+02    250.3032531 77.43083413
1.59E+02    268.6218798 101.3681994
1.00E+02    292.0204619 132.7715595
6.31E+01    321.8844417 173.3342331
3.98E+01    362.5240843 226.904671
2.51E+01    415.6327081 297.2543553
1.59E+01    484.750888  388.8474891
1.00E+01    531.7019902 414.2472657
6.31E+00    632.0695923 564.1829167
3.98E+00    779.5422347 759.9921036
2.51E+00    988.7440311 1025.381285
1.59E+00    1271.836087 1397.757403
1.00E+00    1642.518887 1830.323296
6.31E-01    2144.356898 2376.803338
3.98E-01    2786.278524 3061.827616
2.51E-01    3628.319603 3916.183738
1.59E-01    4759.764198 5027.616387
1.00E-01    6297.605217 6296.065837
6.31E-02    8383.46566  7619.932981
3.98E-02    11028.12119 8786.783325
2.51E-02    14096.10633 9558.012905
1.59E-02    17456.57374 9912.070397
1.00E-02    20673.87878 9807.39253
6.31E-03    23537.12632 9387.141681
3.98E-03    24784.02444 7975.529854
2.51E-03    25461.35182 6999.56268
1.59E-03    27339.39591 6593.166254
1.00E-03    28909.56392 5798.845968

我无法尝试任何事情,因为我什至没有找到任何可以开始的东西。这是所有科学分支的文献中非常常见的事情,我不明白为什么它在 gnuplot 中不是一个非常清晰或解决的主题......

如果有人找到一种方法将上述投影与 3D 数据集一起绘制,如所附图像所示(其中数据是点,拟合是绿线,所需的投影是蓝线),那就太好了。另外,如果有人解释如何获得绿线下的“阴影”,那就太好了。

请注意,3D 对象是曲线,而不是曲面。对于表面,有适合我要求的解决方案,但不适用于这种特殊情况。

另外,如果有办法附加txt文件,请告诉我。还好数据集很小,但是在这里粘贴一个1000多行的数据集就太恐怖了……

谢谢你

3d 2d gnuplot projection
1个回答
0
投票

根据您的描述,我猜您正在寻找以下内容...

您的数据将其设置为 3D 数据,因此您需要使用

splot
绘制它(在 gnuplot 控制台中检查
help splot
)。 比如:
splot FILE u 1:2:3
,即
x:y:z
。 如果您想绘制投影,您可以采用相同的数据,但将其中一个坐标设置为固定值,最小值或最大值取决于您要投影的表面。例如,这意味着
splot FILE u (xmin):2:3
。注意固定值两边的括号
xmin

如果您还想绘制拟合数据,您需要一个函数来拟合数据。

splot
中的tic标签和轴标签不太好,我不知道有什么好方法让它们变得更好。

数据:

SO78531368.dat

1.00E+05    173.026357  31.03390887
6.31E+04    180.723259  23.8603962
3.98E+04    184.1098959 19.11910457
2.51E+04    187.4965328 16.50215789
1.59E+04    190.8831696 15.27373233
1.00E+04    193.5001163 15.48616683
6.31E+03    197.1946293 16.81003397
3.98E+03    200.7352042 19.28843642
2.51E+03    205.3533454 23.0599184
1.59E+03    211.2029909 28.41696219
1.00E+03    217.9762647 35.7598067
6.31E+02    226.1349808 45.7503855
3.98E+02    236.6027675 59.32772063
2.51E+02    250.3032531 77.43083413
1.59E+02    268.6218798 101.3681994
1.00E+02    292.0204619 132.7715595
6.31E+01    321.8844417 173.3342331
3.98E+01    362.5240843 226.904671
2.51E+01    415.6327081 297.2543553
1.59E+01    484.750888  388.8474891
1.00E+01    531.7019902 414.2472657
6.31E+00    632.0695923 564.1829167
3.98E+00    779.5422347 759.9921036
2.51E+00    988.7440311 1025.381285
1.59E+00    1271.836087 1397.757403
1.00E+00    1642.518887 1830.323296
6.31E-01    2144.356898 2376.803338
3.98E-01    2786.278524 3061.827616
2.51E-01    3628.319603 3916.183738
1.59E-01    4759.764198 5027.616387
1.00E-01    6297.605217 6296.065837
6.31E-02    8383.46566  7619.932981
3.98E-02    11028.12119 8786.783325
2.51E-02    14096.10633 9558.012905
1.59E-02    17456.57374 9912.070397
1.00E-02    20673.87878 9807.39253
6.31E-03    23537.12632 9387.141681
3.98E-03    24784.02444 7975.529854
2.51E-03    25461.35182 6999.56268
1.59E-03    27339.39591 6593.166254
1.00E-03    28909.56392 5798.845968

脚本:

### plotting 3D data and 2D projections
reset session

FILE = "SO78531368.dat"

set xlabel "Frequency / Hz" rotate parallel
set xrange[xmin=5e-4 : xmax=5e5]
set xtics out scale 2,1
set ylabel "Real part" rotate parallel
set yrange[ymin=-1000 : ymax=30000]
set format y "       %g"
set zlabel "Imaginary part" rotate by 90 offset -1,0
set zrange[zmin=0 : zmax=11000]
set ztics 1000
set border 1+2+4+8+16+32+64+256+512
set xyplane relative zmin
set logscale x
set grid x,y,z vertical
set key noautotitle
set view 60,30

splot FILE u 1:2:3 w l lw 3 lc "red", \
        '' u 1:2:3 w impulses lc "magenta", \
        '' u 1:2:(zmin) w l lc "magenta", \
        '' u (xmin):2:3 w lp pt 7 ps 0.5 lc "web-green", \
        '' u 1:(ymax):3 w lp pt 7 ps 0.5 lc "web-blue"
### end of script

结果:

enter image description here

© www.soinside.com 2019 - 2024. All rights reserved.