如何知道R中某种命名颜色的rgb颜色代码?

问题描述 投票:0回答:2

在ggplot2图中,我想使用该功能:

scale_fill_manual(
values = c(
'mediumorchid2',
'gold1',
'red'
)

我知道'红色'的RGB代码颜色:#FF0000

颜色'mediumorchid2'或'gold1'也具有这种代码。我如何得到它?

r ggplot2 rgb
2个回答
1
投票

gplots包具有一个名为col2hex()的函数:

library(gplots)
col2hex("gold1")
"#FFD700"

0
投票

[首先,您要谈论的是十六进制表示形式,而不是RGB。 RGB表示形式是三个数字(介于0和1之间或介于0和255之间),分别给出红色,绿色和蓝色级别。

要获得RGB表示,您可以只使用基本函数col2rgb()

col2rbg('mediumorchid2')
#       [,1]
# red    209
# green   95
# blue   238

我长期以来一直具有获取十六进制表示形式的个人便利功能,因为这是我经常需要执行的任务:

col2hex <- function(x, alpha = "ff") {
    RGB <- col2rgb(x)
    return(apply(RGB, 2, function(C) {
        paste(c("#", sprintf("%02x", C), alpha), collapse = "")
    }))
}
col2hex('mediumorchid2')
# [1] "#d15feeff"

更新:

Gordon Shumway's excellent answer提到显然已经有一个具有这种功能的包装!我建议。但是,对于RGB与十六进制的讨论,以及如果您不想依赖gplot的情况,我都保留我的答案。

© www.soinside.com 2019 - 2024. All rights reserved.