gnuplot严重渲染不均匀网格上的热图

时间:2017-11-02 21:44:02

标签: gnuplot heatmap

我正在尝试绘制在不平坦网格上获得的3D结果的热图,f(x,y)函数。 我获得的情节给了我一些丑陋的空白空间在图的顶部。 以下是重现我面临的问题的最小脚本。

#Generate some dummy data
f(x,y) = sqrt(x**2 + y**2)
set table
set samples 1000
set output "table.dat"
splot [0:10][0:10] f(x,y)

绘图脚本:

# plot it
set term x11
set out
set pm3d map 
splot [1:5] [0:2] "table.dat" u ($1):($2/$1):($3)

由于y轴值取决于x轴,因此网格现在是均匀的。从下图中可以看出,gnuplot无法填充靠近绘图顶部边界的一些空间。更改轴限制无济于事。

sample impage plot

知道如何填充白色三角形并使这个图看起来更好吗?

感谢您的帮助。

1 个答案:

答案 0 :(得分:0)

您可以使用dgrid3d进行二维插值。使用using规范($1):($2/$1):($3),您拥有数据点的域名非常不规范。通过将所有其他值设置为NaN,有助于告诉dgrid3d您只对一个小矩形感兴趣。例如:

set pm3d map 
set dgrid3d 100,100 qnorm 4
splot [1:5] [0:2] "table.dat" u ($1 >= 1 && $1 <= 5 ? $1 : 1/0):($2/$1 > 0 && $2/$1 < 2 ? $2/$1 : 1/0):3 

enter image description here

您必须尝试dgrid3d的各种选项才能获得合理的插值。