【问题标题】:Find color names for colors close to colorBrewer palette查找接近 colorBrewer 调色板的颜色的颜色名称
【发布时间】:2013-08-26 19:55:06
【问题描述】:

我想用 R 包 SNA 做社交网络分析。 SNA 仅使用 R 颜色名称(文本名称)为元素着色。

我想从 ColorBrewer 调色板 (set3) 中找到与 R 中颜色名称相近的匹配项。

RGB 空间中的完全匹配并不多。

require(RColorBrewer) 
brew10 <- brewer.pal(10, "Set3")
rcol <- colors()
brew10rgb <- col2rgb(brew10)
allrgb <- col2rgb(rcol)
apply(t(brew10rgb), 1, paste, collapse="$$") %in% apply(t(allrgb), 1, paste,collapse="$$")
brew10rgb[,1]
fltr <- allrgb[1,]==141
allrgb[,fltr]
fltr <- allrgb[2,]==211
allrgb[,fltr]

有没有办法为 R 中的定性调色板选择好的颜色名称,或者将这些 RColorBrewer 颜色映射到现有颜色?

【问题讨论】:

    标签: r colors distance


    【解决方案1】:

    看看这是否有用。 (这是 rgb 空间上的 LI 距离):

    col.dist <- function(inp, comp) sum( abs(inp - col2rgb(comp) ) )
    
    colors()[ apply(col2rgb(brew10), 2, 
                 function(z) which.min( sapply(colors(), 
                               function(x) col.dist(inp=z, comp=x) ) ) ) ]
    #-----------
     [1] "paleturquoise3"  "moccasin"        "lightsteelblue"  "salmon" 
     [5] "lightskyblue3"   "sandybrown"      "darkolivegreen2" "thistle2"
     [9] "gray85"          "orchid3"   
    

    看起来它可能已经成功了:

    display.brewer.pal(10,"Set3")
    

    (虽然我从来没有见过这种颜色的蓟,而且我认为 7 号更像是“lightolive”而不是“darkolive”。)如果你打电话,你可能会得到更快的响应,尽管这似乎可以接受着色一次并存储该矩阵。

    【讨论】:

    • 这太棒了!我正在教一个研讨会,想要获得好的颜色,而不是进入颜色名称和啤酒调色板列表的哲学!我得到了我的清单!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-07-22
    • 2014-09-01
    • 2014-12-12
    • 2017-10-28
    • 1970-01-01
    • 2019-06-12
    相关资源
    最近更新 更多