gnuplot调色板,默认和定义

时间:2014-09-22 04:35:48

标签: colors gnuplot palette color-palette

previous question

相关的一些内容

我想采用gnuplot的默认(pm3d默认)调色板,并在X处放置一个白色值,并将任何> = X作为白色,但其余的(< X)仍然使用默认值进行分配。

比如说我有0到100之间的值。我只对0到30的值感兴趣,所以我做了以下几点:

set cbrange [0:30]

现在,值使用默认调色板均匀分布在0到30之间,但值30.001到100都是黄色。我想在我的调色板顶部放置一个白色块,在颜色条上显示这样的东西

0:30使用默认调色板均匀分布 30:31白色

并且在实际绘图中,将值> = 30作为白色。

我知道我可以设置定义的值,但我似乎无法将默认的rgbformula 7,5,15和定义的点30 = white组合在一起。

有什么想法吗?

1 个答案:

答案 0 :(得分:4)

您可以使用set palette functions定义自己的基于功能的调色板。键入show palette rgbformulae会显示用于默认调色板(7,5,15)的函数的定义:

gnuplot> show palette rgbformulae
      * there are 37 available rgb color mapping formulae:
         0: 0               1: 0.5             2: 1              
         3: x               4: x^2             5: x^3            
         6: x^4             7: sqrt(x)         8: sqrt(sqrt(x))  
         9: sin(90x)       10: cos(90x)       11: |x-0.5|        
        12: (2x-1)^2       13: sin(180x)      14: |cos(180x)|    
        15: sin(360x)      16: cos(360x)      17: |sin(360x)| 
        ...

所以你可以定义自己的红色,绿色和蓝色功能,在调色板的一端给出白色:

r(x) = sqrt(x)
g(x) = x**3
b(x) = (x == 1 ? 1 : sin(2*pi*x))
set palette functions r(gray),g(gray),b(gray)

为了演示,这是一个完整的示例脚本,其中-10以上的所有值都是白色:

r(x) = sqrt(x)
g(x) = x**3
b(x) = (x == 1 ? 1 : sin(2*pi*x))
set palette functions r(gray),g(gray),b(gray)
set isosamples 100
set pm3d map
set cbrange [-200:-10]
set cbtics -200,40
set cbtics add ('> -10' -10)
splot -x**2 - y**2 notitle

4.6.5的输出是:

enter image description here