gnuplot中两个(xy)变量函数的平滑梯度显示?

Smooth gradient display of function of two (xy) variables in gnuplot?

我想将 2 个变量的函数值显示为 x+y,作为 "bitmap" 图像。所以我尝试了这个,基于 http://gnuplot.sourceforge.net/demo/heatmaps.html:

# Color runs from white to green
set palette rgbformula -7,2,-7
set cbrange [-5:5]
set cblabel "Value"
unset cbtics
set xrange [-4.5:4.5]
set yrange [-4.5:4.5]
set view map
splot x+y with image

...但我什么也没得到:

$ gnuplot -persist test.gp
"test.gp", line 45: warning: Image grid must be at least 2 x 2.

那么我怎样才能让 "pixel" 在 x=-2,y=-2 处根据 cbrange 上的 x+y=-4 着色?


编辑:知道了:

set palette rgbformula -7,2,-7
set cbrange [-5:5]
set cblabel "Value"
unset cbtics
set xrange [-4.5:4.5]
set yrange [-4.5:4.5]
set pm3d
unset surface
set view map
splot x+y

输出:


但是 - 说我想要这个范围内的渐变,在大 PNG 上导出为 "smooth" 渐变(没有轴、刻度、任何类型的标记),比如说 3000x2000 像素;实现该目标的最佳方法是什么?

从你的编辑开始:你只是为了停用一切。含义:

unset colorbox
unset xtics
unset ytics
set border 0

然后id你创建命令列表:

set palette rgbformula -7,2,-7
set cbrange [-5:5]
unset cblabel 
unset cbtics
set xrange [-4.5:4.5]
set yrange [-4.5:4.5]
set pm3d
unset surface
set view map

unset colorbox
unset xtics
unset ytics
set border 0

splot x+y

你只得到渐变

编辑: 为了改进渐变步骤并创建更平滑的图像,您需要使用 pm3dinterpolate.

set pm3d interpolate 4,4