Graph gnuplot:热图的默认值(如果没有可用数据)

Graph gnuplot:热图的默认值(如果没有可用数据),graph,3d,gnuplot,heatmap,default-value,Graph,3d,Gnuplot,Heatmap,Default Value,您能告诉我如何指定默认的cb(或z)值吗 我构建了一个3d图表{x,y,z}或{x,y,cb},但是对于不同的x,有不同的y范围,因此白色条在图表上可见(对于热图/色盒)。我不希望看到白色条纹,在没有数据的地方,gnuplot将替换默认值(例如,0),并相应地使用热图的适当颜色绘制字段。您有几个选项,具体取决于您使用的打印模式和数据类型。通常,可以使用颜色指定的两个属性来获得所需的颜色: 1) 越界值将映射到颜色栏的极限最小值或最大值的颜色。因此,一个选项是指定一个调色板,该调色板在最小值和最大

您能告诉我如何指定默认的cb(或z)值吗


我构建了一个3d图表{x,y,z}或{x,y,cb},但是对于不同的x,有不同的y范围,因此白色条在图表上可见(对于热图/色盒)。我不希望看到白色条纹,在没有数据的地方,gnuplot将替换默认值(例如,0),并相应地使用热图的适当颜色绘制字段。您有几个选项,具体取决于您使用的打印模式和数据类型。通常,可以使用颜色指定的两个属性来获得所需的颜色:

1) 越界值将映射到颜色栏的极限最小值或最大值的颜色。因此,一个选项是指定一个调色板,该调色板在最小值和最大值处具有您所需的“默认”颜色,与您在其余范围内使用的调色板功能无关

2) “缺少”或“不是数字”的数据值通常会在像素图像或热图的网格中留下一个洞,让背景颜色显示出来

标准演示集中有一个演示
imageNaN.dem
,显示了这些功能在几个二维和三维热图命令中的使用。由带有图像的splot$matrixdata矩阵生成的热图的输出如下所示。您可以看到固定在色条范围的最小/最大值上的极值

请注意,如果希望背景以外的颜色显示出来,可以在热图表面后面放置一个彩色矩形

# Define the test data as a named data block
$matrixdata << EOD
0    5 4 3  0
?    2 2 0  1
Junk 1 2 3  5
NaN  0 0 3  0
Inf  3 2 0  3
-Inf 0 1 2  3
EOD

set view map
set datafile missing '?'
unset xtics
set ytics   ("0" 0.0, "?" 1.0, "Junk" 2.0, "NaN" 3.0, "Inf" 4.0, "-Inf" 5.0)

set cblabel "Score" 
set cbrange [ -2.0 : 7.0 ]

splot $matrixdata matrix using 1:2:(0):3 with image
#将测试数据定义为命名数据块

$matrixdata@Ethan,我真的没有一些数据,这导致了白色的裂缝

我可以在形成数据文件的阶段填充缺失的数据0,但是有些文件会变得非常大,gnuplot会占用所有内存

所以我在寻找解决问题的方法

我的例子是:

对于@Ethan:我的代码:

            set arrow from 0,86400 rto graph 1, graph 0 nohead ls 5 front

#===> decision of problem
            set object rectangle from graph 0, graph 0 to graph 1, graph 1 behind fc rgbcolor 'blue' fs noborder

            set pm3d map
#           set pm3d interpolate 32,32
            set size square
            set palette rgbformulae 22,13,-31

            splot inputFullPath u 2:1:(percentage($4)) notitle
和我的数据(例如):


请通过显示用于生成绘图和输入数据样本的命令进行澄清。我猜,每一条水平彩色线左右两侧的空白是背景色,如我前面所述,从“非数字”数据值显示出来。您可以通过在绘图后面添加一个矩形将其更改为其他颜色:
set object rectange from graph 0,0 to graph 1,1 fillstyle solid fillcolor”灰色“
。水平白色虚线看起来像是来自无关网格或轮廓设置的工件。@Ethan,是的,从图0中查找decision
设置对象矩形,从图0到图1,fc rgbcolor'blue'fs noborder后面的图1
@Ethan-设置背景显然是解决我问题的简单方法,但是这种方法有一些缺点:1)如果我更改了colorbox调色板,我必须自己手动更改背景色2)当没有点时,背景色仍然不是colorbox的默认值,即,将另一个对象添加到图形1)您可以设置矩形颜色以自动匹配最低色条值:
set obj 1 fill调色板分数0
。2) 我不明白你所说的“默认颜色”是什么意思。如果没有点就没有颜色了,对吗?这个默认颜色到底应该用什么?@Ethan,big Thank 2)-我只是不想在没有数据的情况下出现难看的白色间隙-这意味着这些点具有最小值或零值(因为否则文件大小会很大)
0 1 0.1
0 2 0.2
0 4 0.5
# -------- {0,5..7} - white gap

# -------- {1,1..3} - white gap
1 3 0.6
1 4 0.5
1 7 0.9