Gnuplot:如何将pm3d绘图继续到设定范围之外?

Gnuplot:如何将pm3d绘图继续到设定范围之外?,gnuplot,heatmap,Gnuplot,Heatmap,我在gnuplot中使用pm3d绘制数据点时遇到问题。在我的数据文件中,点(2-dim域)不是矩形对齐的,而是抛物线,如图所示,其中数据点彼此之间没有完全对齐。我的目标是为特定的xrange创建一个带有pm3d的热图,其中热图将延续到所选xrange的边界 我所做的: 使用以下最小代码示例,使用pm3d绘制数据集: set terminal qt set xrange [-0.25:1.00] set view map splot "data.txt" u 1:2:3 wit

我在gnuplot中使用
pm3d
绘制数据点时遇到问题。在我的数据文件中,点(2-dim域)不是矩形对齐的,而是抛物线,如图所示,其中数据点彼此之间没有完全对齐。我的目标是为特定的
xrange
创建一个带有
pm3d
的热图,其中热图将延续到所选
xrange
的边界

我所做的:

使用以下最小代码示例,使用pm3d绘制数据集:

set terminal qt
set xrange [-0.25:1.00]
set view map
splot "data.txt" u 1:2:3 with pm3d
我得到的:

这是我的数据文件的一部分,但在我剪切x域的边界点上有丑陋的角落,因为边界点彼此之间没有对齐

我的预期:

一个热图,其中“热”值与域的真实边界连续,就像简单的“带线”图一样,如图所示

我迄今为止为实现预期目标所做的努力:

我尝试了几个
pm3d
选项,包括
clip1in
选项,该选项只需要在域内放置一个“热矩形”片段,但问题是角点没有放置在域外,这并不能解决问题

其他信息: 操作系统:Ubuntu 20.04

$ gnuplot -V
gnuplot 5.2 patchlevel 8
如果有人知道我是如何实现我想做的事情的,分享这些知识会很好


干杯

Gnuplot 5.4确实提供了这种在z坐标上的平滑剪裁,但不幸的是,这没有帮助,因为在这种情况下,您需要在x坐标上进行剪裁。 下面是通过手动干预执行x剪裁的示例。 x坐标的复杂表达式只是生成点 使用非正交网格

xclip(x) = x > 6. ? 6. : x    # clip x to maximum value of 6.
f(x,y) = sin(sqrt(x*x + y*y)) # some function to plot
set sample 21; set isosample 21
set view map
set xrange [-6 : 6]
unset key    
set multiplot layout 1,2

set title "No clipping"
splot '++' using       ($1+$2*$2/10.) :($2):(f($1,$2)) with pm3d

set title "Manual clipping at x=6"
splot '++' using (xclip($1+$2*$2/10.)):($2):(f($1,$2)) with pm3d
unset multiplot