2011-03-02 22 views
6

我有一个R条形图,有六个条形,每个条形分为两个部分,还有六种颜色 - 但其中几种颜色表示相同的东西。我如何将一个文本分配给图例中的多种颜色?在此先感谢您的帮助!!!R - 传奇:给同一个文字分配多种颜色

这里有一个情节将R代码:

height<-matrix(c(64.39173921,73.08486662, 
       64.25261321,90.70965993, 
       64.91170611,38.21450776, 
       35.60826079,26.91513338, 
       35.74738679,9.290340073, 
       35.08829389,61.78549224), 
       nrow=2, ncol=6, byrow=TRUE, 
       dimnames=list(c("Bilateral", "Multilateral"), 
          c("GER \ntotal", "GER \nto LA", "ESP \ntotal", 
           "ESP \nto LA", "UK \ntotal", "UK \nto LA"))) 

tmp <- height 
height <- matrix(0,nrow=12,ncol=6) 
height[cbind(1:12,rep(1:6,each=2))] <- tmp 

colnames(height) <- colnames(tmp) 
rownames(height) <- rep(rownames(tmp),6) 


barplot(height, beside=FALSE, 
     main="Bilateral vs. Multilateral Aid 2004-8 average", 
     ylab="Percentage of aid", ylim=c(0,100), 
     col=c("deepskyblue4","deepskyblue", 
       "deepskyblue4","deepskyblue", 
       "darkolivegreen4","darkolivegreen1", 
       "darkolivegreen4","darkolivegreen1", 
       "firebrick4", "firebrick1", 
       "firebrick4", "firebrick1") 
     ) 

回答

6

您可精确控制的传说:

legend("bottom", 
     legend = c("Bilateral Aid","","","Other","",""), 
     fill = c("deepskyblue4","darkolivegreen4","firebrick4","deepskyblue", 
       "darkolivegreen1","firebrick1"), 
     bg = "white", ncol = 2) 

你需要创建一些空间图例或推它的绘图区域外,但是您可以控制显示哪些颜色以及与哪些文本相关联。

barplot figure

+0

这将工作,如果每种颜色意味着不同的东西。问题是,较深的颜色(deepskyblue4,darkolivegreen4,firebrick4)意味着同样的事情,即“双边援助份额”,较轻的意味着“援助的多边份额” - 现在我想将三种颜色分别绑定到一个文字...不知道这是否合理,并解释我想要做什么? – Bettina 2011-03-02 15:15:23

+0

@Bettina是的,你的Q没有这样读过。我会考虑编辑。 – 2011-03-02 15:24:04

+0

@Bettina,现在编辑好的版本有用吗? – 2011-03-02 15:27:38