具有不连续梯度的 Gnuplot 热图

Gnuplot heatmaps with discontinuos gradient

我正在绘制一个 NxN 方阵,其数字在 [0,1] 之间。

由于零的数量很多,矩阵看起来大部分是黑色的,但我知道,而且我眯着眼睛可以看到,还有更多的点是彩色的,只是被渐变渲染成深色。

我想使用 "discontinuos" 渐变进行绘图,即将 0 着色为黑色,并仅将非常明亮、高可见度的颜色分配给任何其他值。

我可以使用强离散或基于范围的梯度,例如:

0 black, (0,0.25) white , (0.25,0.50) yellow, (0.50,0.75) green, (0.75,1] light blue

有什么方法可以达到类似的目的吗?

这是我当前的脚本,我尝试了一些改动。

#!/bin/gnuplot
#
# Plot heat maps
#


unset key
set tic scale 0


set palette defined (0 "black" , 1 "white", 2 "yellow", 3 "red")
set cbrange [0:1]

unset cbtics

set xrange [1:N]
set yrange [N:1] # Not a typo

set term pdf
set output "mat.pdf"

plot 'mat.out' matrix  with image

经过更多的研究和试验,红绿灯样式调色板似乎可行,proposed here

原始调色板: 'Traffic light' 调色板(灰色不平滑的颜色跳跃 = 1/3 和 2/3)。

       set palette model RGB
       set palette defined (0 "dark-green", 1 "green", 1 "yellow", \
                            2 "dark-yellow", 2 "red", 3 "dark-red" )

更多跳跃:

set palette defined (0 "black", 0 "grey", 1 "white", 1 "yellow", \
                 2 "dark-yellow", 2 "green", 3 "dark-green", \
                 3 "red", 4 "dark-red")