将矢量传递给R中的rbg

时间:2015-01-21 16:36:37

标签: r

我试图将一个向量传递给R(版本3.1.2)中的rgb函数。根据{{​​1}}的文档,

  

可以通过将矩阵或数据框作为参数红色传递来指定颜色,并留下蓝色和绿色。在这种情况下,前三列红色被视为红色,绿色和蓝色值。

但是当我真的尝试这样做时,我收到一个错误:

rgb

相比之下,这很好用:

rgb(c(0, 0, 0))
# Error in rgb(c(0, 0, 0)) : argument "green" is missing, with no default

任何想法我做错了什么?

2 个答案:

答案 0 :(得分:2)

实际上,一发布这个,我就找到了答案。该对象实际上必须是矩阵或data.frame。所以这可以正常工作:

 rgb(matrix(c(0, 0, 0), ncol = 3))
 # [1] "#000000"

糟糕。但希望这可以帮助别人。

答案 1 :(得分:0)

rgb需要矩阵或数据框,而不是矢量。它返回颜色矢量,矩阵或数据框中的每一行颜色。所以这个两行矩阵:

matrix(1:6,2,3)
#     [,1] [,2] [,3]
#[1,]  0.1  0.1  0.1
#[2,]  0.1  0.1  0.1

将生成2种颜色的矢量

rgb(matrix(0.1:0.9,2,3))
#[1] "#1A1A1A" "#1A1A1A"