为了更容易地在复杂绘图中测试颜色,我想使用命名颜色但指定 alpha。 我的第一个想法是使用col2rgb()
. 像这样的东西
rgb( col2rgb( "red" ), alpha=125, maxColorValue=255 )
但是 col2rgb(( 的输出是一个矩阵。 我尝试过转置它,将其转换为字符等,但无法以rgb()
可以使用的形式获得它。 这很奇怪,因为它被称为col2rgb
.
情况比这更复杂,我必须在给出颜色时指定 alpha。
我们可以t
ranspose 创建一个 3 列matrix
,因为col2rgb
是带有 row.names 的单列matrix
,即
col2rgb( "red" )
# [,1]
#red 255
#green 0
#blue 0
t(col2rgb( "red" ))
# red green blue
#[1,] 255 0 0
根据?rgb
可以通过将矩阵或数据框作为参数 red 传递并保留蓝色和绿色来指定颜色。在这种情况下,红色的前三列被视为红色、绿色和蓝色值。
因此,我们可以使用 3 列matrix
rgb(t(col2rgb( "red" )), alpha=125, maxColorValue=255 )
#[1] "#FF00007D"
或作为data.frame
rgb(as.data.frame(t(col2rgb( "red" ))), alpha=125, maxColorValue=255 )
#[1] "#FF00007D"
这与
rgb(red = 255, green = 0, blue = 0, alpha=125, maxColorValue=255 )
#[1] "#FF00007D"