如何知道 R 中某个命名颜色的 rgb 颜色代码?
How to know the rgb colour code for a certain named color in R?
在 ggplot2 绘图中,我想使用函数:
scale_fill_manual(
values = c(
'mediumorchid2',
'gold1',
'red'
)
我知道 'red' 的 RGB 代码颜色:#FF0000
颜色'mediumorchid2'或'gold1'也有这种代码。我怎样才能得到它?
gplots 包有一个名为 col2hex()
:
的函数
library(gplots)
col2hex("gold1")
"#FFD700"
首先,您说的是十六进制表示,而不是 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"
更新:
提到显然已经有一个包具有这样的功能!我会推荐的。但是,对于 RGB 与十六进制的讨论以及如果您不想依赖 gplot
.
,我会留下我的答案。
在 ggplot2 绘图中,我想使用函数:
scale_fill_manual(
values = c(
'mediumorchid2',
'gold1',
'red'
)
我知道 'red' 的 RGB 代码颜色:#FF0000
颜色'mediumorchid2'或'gold1'也有这种代码。我怎样才能得到它?
gplots 包有一个名为 col2hex()
:
library(gplots)
col2hex("gold1")
"#FFD700"
首先,您说的是十六进制表示,而不是 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"
更新:
gplot
.