2012-04-18 30 views
0

的GGPLOT2手册在http://had.co.nz/ggplot2/scale_manual.html建议使用的结构等两个输入向量为scale_colour_manual一个矢量:生成使用

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,以防将来帮助某人处理同样的问题。任何意见,欢迎...

回答

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")。

+0

感谢保罗(抱歉延迟回复 - 我以为我会得到来自stackoverflow的通知,但我的设置一定是错的) – Sujai 2012-04-19 20:26:21

+1

我也听到了有用的人在ggplot2论坛,谁证实了你说的话(并为使用scale_colour_manual的原始问题添加了一个额外的解决方案 - 如果它适用于任何人,请在此链接):https://groups.google.com/forum/?fromgroups#!topic /ggplot2/0k9xjSzx6aw – Sujai 2012-04-19 20:29:12