用户定义的调色板与cbrange结合使用

时间:2014-11-20 16:39:29

标签: gnuplot

假设我在gnuplot 4.6.2中有以下图:

Sample graph

使用最低生产率的例子

set xrange [-2:10];
set yrange [-2:10];

set size ratio -1
set pm3d map

set palette defined (-20 "#0060ad", 0 "#ffffff", 100 "#dd181f" )
set cbrange [-20:100]

splot x*y

然而,这并不完全是我想要的。我实际上希望-20的值与+20具有相同的强度。

我尝试了两件事,如下所示。

如果我将-20中的palettecbrange更改为-100,我会看到左边的数字。这基本上就是我想要的图表。但是,如果我将cbrange设置为[-20:100],同时将调色板保持在-100,我会得到右边的数字。这不是我想要的,我希望颜色框从-20开始。我怎样才能做到这一点?

Example tries

1 个答案:

答案 0 :(得分:1)

因此,据我所知,你想要定义-100,0和+100的颜色,但只使用-20和+100之间的部分。

目前我没有看到任何其他选项,只能手动在深蓝色-100和白色0之间进行线性插值以获得淡蓝色,在您的情况下为#ccdfef

red = int(255*0.8) = 0xcc
green = int(0x60 + (0xff-0x60)*0.8) = 0xdf
blue = int(0xad + (0xff - 0xad)*0.8) = 0xee

问题是,给set palette defined的数值不是绝对值,而是始终映射整个cbrange的相对值。

set xrange [-2:10]
set yrange [-2:10]

set size ratio -1
set pm3d map

set palette defined (-20 "#ccdfef", 0 "#ffffff", 100 "#dd181f" )
set cbrange [-20:100]
set isosamples 100
splot x*y notitle

enter image description here