【问题标题】:Gnuplot: how to assign values for discrete colormaps manuallyGnuplot:如何手动为离散颜色图分配值
【发布时间】:2020-09-04 09:33:41
【问题描述】:

gnuplot 中是否有任何选项可以手动分配离散颜色图的阈值?我已经固定了范围,但是颜色范围是在它们之间自动线性调整的。

set cbrange [1.5:5]
set palette maxcolors 4
set palette defined ( 0 '#000fff',\
                    1 '#ee0000',\
                    2 '#90ff70',\
                    3 '#000000')

比如说,我想要 [1.5,2] 中的第一种颜色,[2,2.1] 中的第二种颜色,...作为示例。

谢谢

【问题讨论】:

    标签: gnuplot colormap


    【解决方案1】:

    这取决于您要绘制的内容。在下面找到两个尝试。第一个是使用颜色函数。这样做的好处是您也可以使用透明颜色。我猜调色板中的透明颜色(还)不可能(参见Gnuplot: transparency of data points when using palette)。第二种方法使用调色板并将颜色范围之外的数据点重新定义为NaN。以下示例可能是一个起点。

    代码:

    ### palette with defined not equidistant color ranges
    reset session
    
    # create some test data
    set isosamples 100
    set samples 100
    set table $Data
        plot '++' u 1:2:(abs($1*$2)/5+1.4) w table
    unset table
    
    myColor(n) = n<1.5 ? 0xff123456 : \
                 n<2.0 ? 0x000fff : \
                 n<2.1 ? 0xee0000 : \
                 n<3.5 ? 0x90ff70 : \
                 n<5.0 ? 0x000000 : 0xff123456
    
    set cbrange [1.5:5]
    set palette defined (1.5 "#000fff", 2.0 "#000fff", \
                         2.0 "#ee0000", 2.1 "#ee0000", \
                         2.1 "#90ff70", 3.5 "#90ff70", \
                         3.5 "#000000", 5.0 "#000000")
    
    set size square
    set multiplot layout 1,2
    
        plot $Data u 1:2:(myColor($3)) w p pt 5 ps 0.4 lc rgb var notitle
    
        plot $Data u 1:2:($3<1.5 || $3>5.0 ? NaN : $3) w image notitle
    
    unset multiplot
    ### end of code
    

    结果:

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2020-12-17
      • 1970-01-01
      • 2017-05-18
      • 2021-11-03
      • 2015-06-13
      • 2021-02-15
      • 1970-01-01
      相关资源
      最近更新 更多