R语言
col2rgb
位于 grDevices
包(package)。 说明
R颜色到 RGB(红/绿/蓝)转换。
用法
col2rgb(col, alpha = FALSE)
参数
col |
三种向量中的任意一种R颜色规格,即颜色名称(如 |
alpha |
指示是否应返回 Alpha 通道(不透明度)值的逻辑值。 |
细节
NA
(整数或字符)和 "NA"
表示透明,也可以指定为 "transparent"
。
不属于以下类型之一的 col
值将被强制:实向量被强制为整数,其他类型被强制为字符。 (因子被强制转换为字符:在所有其他情况下,进行强制转换时都会忽略该类。)
col
的零值和负值是错误。
值
具有三行或四行(对于 alpha = TRUE
)且列数为 col
长度的整数矩阵。如果 col
有名称,这些名称将用作返回值的列名称。
例子
col2rgb("peachpuff")
col2rgb(c(blu = "royalblue", reddish = "tomato")) # note: colnames
col2rgb(1:8) # the ones from the palette() (if the default)
col2rgb(paste0("gold", 1:4))
col2rgb("#08a0ff")
## all three kinds of color specifications:
col2rgb(c(red = "red", hex = "#abcdef"))
col2rgb(c(palette = 1:3))
##-- NON-INTRODUCTORY examples --
grC <- col2rgb(paste0("gray", 0:100))
table(print(diff(grC["red",]))) # '2' or '3': almost equidistant
## The 'named' grays are in between {"slate gray" is not gray, strictly}
col2rgb(c(g66 = "gray66", darkg = "dark gray", g67 = "gray67",
g74 = "gray74", gray = "gray", g75 = "gray75",
g82 = "gray82", light = "light gray", g83 = "gray83"))
crgb <- col2rgb(cc <- colors())
colnames(crgb) <- cc
t(crgb) # The whole table
## How many names are 'aliases' of each other?
ccodes <- c(256^(2:0) %*% crgb)
cl <- split(cc, ccodes)
length(cl) # 502 distinct colors
table(tcc <- lengths(cl))
## All the multiply named colors:
clmult <- cl[tcc >= 2]
names(clmult) <- sapply(clmult, function(x) paste(crgb[,x[1]], collapse = ","))
utils::str(clmult)
## Look at the color cube:
tc <- t(crgb[, !duplicated(ccodes)])
cNms <- rownames(tc)
if(requireNamespace("lattice", quietly = TRUE))
lattice::cloud(blue ~ red + green, data = as.data.frame(tc), col = cNms)
## The 8 corners of the color cube:
isC <- rowSums(tc == 0 | tc == 255) == 3
cNms[isC] # "white" "black" "blue" "cyan" "green" "magenta" "red" "yellow"
table(is.gray <- tc[,1] == tc[,2] & tc[,2] == tc[,3]) # (397, 105)
## Not run: ## Look at the color cube dynamically:
if(require("rgl")) {
open3d(windowRect = c(50,50, 950, 950)) # large, so we see details
plot3d (tc, col = cNms, size = 11) # --> rotate w/ mouse; enlarged corners:
points3d(tc[isC,], col = cNms[isC], size=22)
bg3d("darkgray") # (to "see more"); rotate around gray-axis:
play3d(spin3d(axis = c(1, 1, 1), rpm = 2), duration = 30)
if(FALSE) # add all names {zoom in with 2nd mouse button!}
text3d(tc[!is.gray,], texts = cNms[!is.gray],
col = cNms[!is.gray], adj=-1/4, cex = 1/2)
if(FALSE) { ## next version of {rgl}
hover3d(tc, labels = cNms)
message("Move mouse over plot to identify points.")
} else { ## click on blob to see colors()' name:
identify3d(tc, labels=cNms)
}
}
## End(Not run)
作者
Martin Maechler and the R core team.
也可以看看
更新、更灵活的接口 convertColor()
。
相关用法
- R colorRamp 颜色插值
- R colors 颜色名称
- R convertColor 在色彩空间之间转换
- R contourLines 计算轮廓线
- R chull 计算一组点的凸包
- R check.options 设置带有一致性检查的选项
- R cairo 基于 Cairgraphics 的 SVG、PDF 和 PostScript 图形设备
- R cm 单位改造
- R cairoSymbolFont 指定符号字体
- R axisTicks 计算漂亮的轴刻度
- R hcl HCL 颜色规格
- R quartzFonts 石英字体
- R as.graphicsAnnot 强制图形注释对象
- R xyTable (x,y) 点的重数,例如,对于向日葵图
- R dev.interactive 当前图形设备是否具有交互性?
- R X11Fonts X11 字体
- R plotmath R 中的数学注释
- R dev.capture 将设备输出捕获为光栅图像
- R dev.size 查找设备表面的尺寸
- R pdf.options 设置/查看 pdf 参数默认值的辅助函数
- R densCols 平滑密度图的颜色
- R windows Windows 图形设备
- R rgb RGB 颜色规格
- R msgWindow 操纵窗口
- R dev.flush 保持或刷新屏幕图形设备上的输出
注:本文由纯净天空筛选整理自R-devel大神的英文原创作品 Color to RGB Conversion。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。