R - легенда: назначить несколько цветов для одного и того же текста - PullRequest
6 голосов
/ 02 марта 2011

У меня есть столбец 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")
        )

1 Ответ

6 голосов
/ 02 марта 2011

Вы точно контролируете легенду:

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

Вам нужно создать некоторое пространство для легенды или вытолкнуть ее за пределы области черчения, но вы контролируете, какие цвета появляются и с каким текстом они связаны..

barplot figure

...