我想做一个矢量场图,矢量箭头也在底部描绘,就像在表面轮廓图中使用“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
由于我没有看到任何gnuplot这样的情节的例子,我不确定即使它能够做到这一点。如果没有,你建议我使用哪种软件(Matlab,matplotlib,...)?
提前致谢!
我真的很感激任何帮助!
祝福,
DAVES
答案 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