【发布时间】:2017-11-02 21:44:02
【问题描述】:
我正在尝试绘制在不均匀网格上获得的 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 无法填充靠近绘图顶部边框的一些空间。更改轴限制没有帮助。
知道如何填充白色三角形并使该图看起来更好吗?
感谢您的帮助。
【问题讨论】:
-
很难想象它究竟应该如何看起来更好
-
您好,这是正确的。我的意思是没有顶部的白色三角形。这里有一些数据要绘制,应该是彩色的。
-
如果你想填充样本之间的数据点,你必须使用插值,你可以使用
set dgrid3d。另外,请注意您的表格在x(1000 点)中的分辨率非常好,但在y(10 点)中的分辨率非常差。使用更精细的网格 (set isosamples 1000),插值效果会更好。 -
感谢您的建议。我无法更改原始数据采样,上面的脚本只是一个说明。不幸的是,dgrid3d 似乎没有正确处理这种情况,我认为问题出在 y 轴取决于 x 轴的事实:u ($1):($2/$1):($3)。