web-dev-qa-db-fra.com

Création d'une légende multi-colonnes dans ggplot

J'ai le script suivant, qui suppose de créer un tracé avec une légende à deux colonnes.

 #!/usr/bin/Rscript
library(ggplot2)
library(plyr)
library(reshape2)
library(scales)

file <- "http://dpaste.com/1354089/plain/";
dat <-read.table(file,header=TRUE);
datm <- melt(dat)

# Plot them
ggplot(datm,aes(x = variable,y = value,fill = Term)) +
geom_bar(position = "fill") +
scale_y_continuous(labels = percent_format())+
theme(legend.direction ="vertical",legend.position = "bottom")+

guides(color=guide_legend(ncol=2))+ # this doesn't seem to work

ggsave(file="~/Desktop/test.pdf",width=11,height=11)

Mais cela crée plutôt ce chiffre enter image description here

Comment puis-je le faire correctement?

44
pdubois

vous devez affecter le guide à l'esthétique correcte et vous avez utilisé le remplissage:

guides(fill=guide_legend(ncol=2))

Et vous devez prendre soin de l'avertissement avec geom_bar

97
Ido Tamir