我需要绘制一个三维表面(从文件中),然后在该表面上绘制一条线(来自不同的文件)。我找到了一个相关的帖子(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帮助文件,没有任何示例或案例有帮助。我很好,真的卡住了。请帮忙!我非常感谢任何输入。
答案 0 :(得分:1)
您必须进行一次splot
来电,就像在Gnuplot: Plotting a path over a surface的回答中一样:
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
会创建一个全新的图表。