Gnuplot:将无穷大值添加到colorbox

Gnuplot:将无穷大值添加到colorbox,gnuplot,Gnuplot,我想用Gnuplot绘制一个简单的热图,它与本例非常相似: unset key set cbrange [0:6] set xrange [0:10] set yrange [0:5] set size ratio -1 set cbtics out nomirror set palette maxcolors 12 model RGB defined (0 '#1a9641', 1 '#a6d96a', 2 '#ffffbf', 3 '#fdae61', 4 '#d7191c') $map1

我想用Gnuplot绘制一个简单的热图,它与本例非常相似:

unset key
set cbrange [0:6]
set xrange [0:10]
set yrange [0:5]
set size ratio -1
set cbtics out nomirror
set palette maxcolors 12 model RGB defined (0 '#1a9641', 1 '#a6d96a', 2 '#ffffbf', 3 '#fdae61', 4 '#d7191c')
$map1 << EOD
5.5 4.0 3.5 1.0 0.5 5.0 4.5 3.0 1.5 0.0
2.0 2.5 0.0 inf inf 4.5 3.0 0.5 0.0 1.5
0.5 0.0 0.5 inf inf 0.0 0.5 0.0 1.5 0.0
0.0 0.5 0.0 2.5 3.0 0.5 0.0 0.5 2.0 3.5
0.5 1.0 2.5 4.0 3.5 2.0 2.5 0.0 0.5 1.0
EOD
plot '$map1' using ($1+.5):($2+.5):($3) matrix with image
unset键
设置cbrange[0:6]
设置xrange[0:10]
设置Y范围[0:5]
设置大小比率-1
将cbtics设置为默认错误
设置调色板maxcolors 12模型RGB定义(0'#1a9641',1'#a6d96a',2'#ffffbf',3'#fdae61',4'#d7191c')

$map1您将需要类似以下三行的内容,根据所需的渐变手动填充颜色0-11(我过去曾用于生成渐变)


非常感谢。我希望我没有手动定义每种颜色,因为gnuplot输入是由一个脚本为许多不同的热图生成的,这些热图的cbrange不同。似乎我必须开发一种算法来为我的colorbox动态生成这些颜色代码,但我会这样做。顺便说一句-我对解决方案的最后一行有一个改进的想法:不用手动定义每个tic,您可以使用以下两个命令:
set cbtics autofreq
set cbtics add(“inf”6.5)
set cbrange [0:6.5]
set palette maxcolors 13 model RGB defined \
( 0 '#222222', 1 '#333333',   2 '#444444', \
  3 '#555555', 4 '#666666',   5 '#777777', \
  6 '#888888', 7 '#999999',   8 '#aaaaaa', \
  9 '#bbbbbb', 10 '#cccccc', 11 '#dddddd', 12 '#dd0000')
set cbtics ("0" 0, "1" 1, "2" 2, "3" 3, "4" 4, "5" 5, "6" 6, "inf" 6.5)