Gnuplot - 在二维轮廓图上绘制数据点

Gnuplot - 在二维轮廓图上绘制数据点

我想绘制一些数据点(M_坐标_Plain.txt)到二维轮廓投影(由数据制成轮廓.txt)。

我在这些帖子中找到了类似的答案:如何在 gnuplot 中的二维热图上标记一些点?将点叠加到 pm3d 地图上?,但不幸的是,这些对我来说似乎不起作用。

首先我设置选项:

set pm3d explicit   
unset surface     # Switch off the surface    
set view map      # Set a bird eye (xy plane) view    
set contour       # Plot contour lines    
set key outside    
set cntrparam cubicspline   # smooth out the lines    
unset colorbox

然后我使用 splot 命令进行绘图:

splot 'Contours.txt' using 1:2:3 notitle with pm3d,\
'M_Coord_Plain.txt' with points nocontour using 1:2:(0) pt 7

得到的图仅仅是轮廓二维投影,但是上面没有点,也没有错误。

我在 Ubuntu 16.04LTS 上使用 Gnuplot 5.0 patchlevel 3。

答案1

最后它成功了,但必须做出以下改变:

  1. 在点数据文件(M_Coord_Plain.txt)中的每一行之间都留一个空格,因为 splot 命令需要这种格式。
  2. 删除未设置表面命令并将其替换为设置表面命令,因为数据点绘制在表面上。然而,这导致点看起来模糊,因为零值(定义的第三列:(0))的对应颜色默认为深紫色。
  3. 因此,我们可以使用黑白调色板并定义宽范围的颜色框范围,以便在零和高轮廓值之间形成较大的对比。

因此绘制请求的图的命令是:

set pm3d explicit
set surface
set view map  # Set a bird eye (xy plane) view
set contour  # Plot contour lines
set key outside
set cntrparam cubicspline  # Smooth out the lines
set cntrparam levels discrete 3.197,3.552  # Plot the selected contours
unset colorbox
set cbrange [0:7000]  # Set the color range of contour values.
set palette model RGB defined ( 0 'white', 1 'black' )
set style line 1 lc rgb '#4169E1' pt 7 ps 2
splot 'Contours.txt' using 1:2:3 with pm3d notitle,\
      'M_Coord_Plain.txt' using 1:2:(0) with points ls 1 notitle

得到的图是

相关内容