矢量场3D图在gnuplot中与矢量轮廓(底部)

时间:2017-05-23 11:17:25

标签: vector plot gnuplot

我想做一个矢量场图,矢量箭头也在底部描绘,就像在表面轮廓图中使用“set pm3d at b”。

我的文件格式如下:

x  y  y  dx dy dz
1  0  2  4  3  1 
2  3  4  2  6  3
2  4  6  1  9  2
.  .  .  .  .  .

我使用过这个gnuplot脚本:

set style arrow 1 
set xrange[0.7:0.0]
set yrange[-0.4:0.4]
set zrange[-0.4:1.0]
set xtics (-0.7,-0.5,-0.33,-0.15,0.0,0.15,0.33,0.5,0.7) font "Times-Roman,18"
set ytics (-0.7,-0.5,-0.33,-0.15,0.0,0.15,0.33,0.5,0.7) font "Times-Roman,18"
unset ztics
set palette rgbformulae 30,31,32
set ticslevel 0
unset key
scale = 0.4
splot 'file.dat' u 1:2:3:($4*scale):($5*scale):($6*scale) w vectors arrowstyle 1

我还附加了两个具有不同视图的三维矢量场图。我真正想要的是两者的组合,以便绘制的矢量的轮廓应该出现在底部(就像使用“设置视图0,180”的顶视图一样,它由第二个图像(顶视图)表示并入(侧面)视图)。

Vector_field_3d_plot_side_view

Vector_field_3d_plot_top_view

由于我没有看到任何gnuplot这样的情节的例子,我不确定即使它能够做到这一点。如果没有,你建议我使用哪种软件(Matlab,matplotlib,...)?

提前致谢!

我真的很感激任何帮助!

祝福,

DAVES

1 个答案:

答案 0 :(得分:0)

既然你知道了zrange,你可以自己做一下投影,并将z设置为z轴的最小值,将dz设置为零:

set style arrow 1 
set xrange[0.7:0.0]
set yrange[-0.4:0.4]
set zrange[-0.4:1.0]
set xtics (-0.7,-0.5,-0.33,-0.15,0.0,0.15,0.33,0.5,0.7) font "Times-Roman,18"
set ytics (-0.7,-0.5,-0.33,-0.15,0.0,0.15,0.33,0.5,0.7) font "Times-Roman,18"
unset ztics
set palette rgbformulae 30,31,32
set ticslevel 0
unset key
scale = 0.4
splot 'file.dat' u 1:2:3:($4*scale):($5*scale):($6*scale) w vectors arrowstyle 1,\
    '' u 1:2:(-0.4):($4*scale):($5*scale):(0) w vectors as 1
相关问题