在 rgb() 中使用命名的 r 颜色,这样我就可以添加 alpha 值



为了更容易地在复杂绘图中测试颜色,我想使用命名颜色但指定 alpha。 我的第一个想法是使用col2rgb(). 像这样的东西

rgb( col2rgb( "red" ), alpha=125, maxColorValue=255 )

但是 col2rgb(( 的输出是一个矩阵。 我尝试过转置它,将其转换为字符等,但无法以rgb()可以使用的形式获得它。 这很奇怪,因为它被称为col2rgb.

情况比这更复杂,我必须在给出颜色时指定 alpha。

我们可以transpose 创建一个 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"

相关内容

最新更新