在 gnuplot 中使用 pm3d 在 3d 表面上绘制点

plotting points on 3d surface with pm3d in gnuplot

我正在尝试使用 gnuplot 在 3d 表面以及 3d 表面的基础上绘制一个点。下面是我正在使用的代码,数据“datx.dat”位于以下位置 https://www.dropbox.com/s/8evj5da7yco1xmo/datx.dat?dl=0

set dgrid3d 100,100
set cntrparam levels disc -242.3,-242.5,-243,-244,-245,-246,-247,-248
set contour both                                                     
set hidden3d back offset 1 trianglepattern 3 undefined 1 altdiagonal bentover        
#set palette rgbformulae 12,12,12                                                     
set view 50,320                                                                      
set contour both
unset key 
unset colorbox

$data << EOD                     
1175.4,1.61,-242.01
EOD

splot 'datx.dat' using 1:2:3 with pm3d, \
      $data using 1:2:3 with labels point pt 7

下面是输出,我没有看到所需位置的点。我如何在 gnuplot 中实现这一点?

期望的输出:

它不起作用的原因是 set contours ... splot $DATA with labels 告诉程序绘制 $DATA 轮廓并沿着这些轮廓放置标签。显然单点数据集不可能生成等值线,所以没地方放标签。

将单个点放置在表面已知位置的最简单方法是:

set label 1 "" at 1175.4,1.61,-242.01 point pt 7     
# make sure it is not obscured by the surface
set label 1 front

在底座上放置一个点也很容易,只要您准确指定要绘制底座的位置(而不是尝试预测自动放置的最终位置):

Zbase = -500
set xyplane at Zbase
set label 2 "" at 1175.4, 1.61, Zbase point pt 7