1

我需要绘制一个 3d 表面(来自文件),然后在该表面上绘制一条线(来自不同的文件)。我找到了一个相关的线程(Gnuplot: Plotting a path over a surface),但建议的答案是我已经尝试过的东西(但它没有用)。

该表面是 3D 势能表面,而线是该表面上的轨迹。这条线描述了我正在研究的系统是如何在表面上演变的。

我目前正在这样做:

splot "trajectory.dat" using 4:6:10 title "{/Helvetica=23 trajectory}"  with lines lt -1
set pm3d
set hidden3d

splot   "surface.dat" using 1:3:7 title "{/Helvetica=23 surface}"

但我得到的只是表面,没有轨迹。当我从脚本中绘制它时,轨迹会短暂闪烁,但随后表面会出现在它上面,这就是我能看到的全部。即使在旋转和重新定向表面时也没有轨迹迹象。

我试过颠倒绘图顺序(首先是表面,然后是轨迹),但这也不起作用。

我还尝试在轨迹上放置一个 z 轴偏移量,以检查它是否不是表面被绘制在轨迹顶部的情况。这也失败了。

关于如何进行的任何想法?我浏览了 gnuplot 帮助文件,没有任何示例或案例有帮助。我很好,真的被困住了。请帮忙!我非常感谢任何意见。

4

1 回答 1

1

您必须打一个splot电话,就像在Gnuplot 的回答中所做的那样:在表面上绘制路径

set pm3d
set hidden3d
splot "trajectory.dat" using 4:6:10 title "trajectory"  with lines lt -1,\
      "surface.dat" using 1:3:7 title "surface"

否则,如果您不在multiplot模式下,第二个splot会创建一个全新的图形。

于 2013-08-05T08:59:08.870 回答