0

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 以防它在将来帮助遇到同样问题的人。欢迎任何建议...

4

1 回答 1

3

这应该有效:

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

您所追求的行为模仿了 Python 字典的行为。有key,value对,并且引用特定的键会返回值。在这个 R 示例中,keys是字符向量的名称, 是向量values内的值。对于 ggplot2 这明确地将一个键(例如"8")耦合到一个颜色值("red")。

于 2012-04-18T11:33:39.580 回答