【问题标题】:gnuplot palette, default and definedgnuplot 调色板,默认和定义
【发布时间】:2014-11-15 23:42:30
【问题描述】:

一些与previous question相关的东西

我想采用 gnuplot 的默认(pm3d 默认)调色板,并在 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 结合起来。

有什么想法吗?

【问题讨论】:

    标签: colors gnuplot palette color-palette


    【解决方案1】:

    您可以使用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 的输出是:

    【讨论】:

    • 太棒了。有几位我不明白。如果从文件加载,为什么传递gray 而不是值,例如r(gray$1)?另外,在b(x) 1 中cbrange 的最大值是否正确?我希望我可以将其设置为值 X,然后将实际颜色条图设置为 X+10,例如,颜色条顶部有一个实际的白色块。
    • 例如,我希望可以绘制像this这样的颜色条
    • 好的,我明白了:全部替换,所以有三元。 r(x) = (x >= 0.9 ? 1 : sqrt(x))g(x) = (x >= 0.9 ? 1 : x**3))b(x) = (x >= 0.9 ? 1 : sin(2*pi*x))。感谢您的帮助
    • 当从文件加载数据时,某些列表达式,用using 给出确定颜色。然后将这些值映射到代表整个色彩空间的[0,1] 范围。变量gray 表示数据点在这个标准化颜色范围内的相对位置......或者类似的东西:)
    猜你喜欢
    • 1970-01-01
    • 2015-02-09
    • 2013-11-10
    • 2019-07-03
    • 2013-07-22
    • 2015-05-26
    • 2012-01-02
    • 2017-05-30
    • 2021-07-12
    相关资源
    最近更新 更多