使用两个输入向量为scale_colour_manual生成矢量

时间:2012-04-18 11:27:29

标签: r ggplot2

http://had.co.nz/ggplot2/scale_manual.html上的ggplot2手册建议使用如下结构:

values = c("8" = "red","4" = "blue","6" = "darkgreen", "10" = "orange")

为值指定特定颜色。

如何从两个数组生成此结构:

A = c("8","4","6","10"); B = c("red","blue","darkgreen","orange")

我得到了:

rbind(A,B)
  [,1]  [,2]   [,3]        [,4]    
A "8"   "4"    "6"         "10"    
B "red" "blue" "darkgreen" "orange"

但我不知道如何将其变成“X”=“Y”分配数组。

我意识到这是一个普遍的R问题,而不是ggplot2特有的问题。但我正在标记ggplot2以防万一将来有同样问题的人。任何建议都欢迎......

1 个答案:

答案 0 :(得分:3)

这应该有效:

values = B
names(values) = A
> all.equal(values,
+       c("8" = "red","4" = "blue","6" = "darkgreen", "10" = "orange"))
[1] TRUE

您在模仿Python字典后的行为。有keyvalue对,并且引用特定键返回值。在此R示例中,keys是字符向量的名称,values是向量内的值。对于ggplot2,这会明确将密钥(例如"8")与颜色值("red")耦合。