J'ai une question concernant la légende de ggplot2.
Disons que j'ai un ensemble de données hypothétique sur la longueur moyenne des carottes pour deux couleurs différentes dans deux fermes:
carrots<-NULL
carrots$Farm<-rep(c("X","Y"),2)
carrots$Type<-rep(c("Orange","Purple"),each=2)
carrots$MeanLength<-c(10,6,4,2)
carrots<-data.frame(carrots)
Je fais un simple graphique à barres:
require(ggplot2)
p<-ggplot(carrots,aes(y=MeanLength,x=Farm,fill=Type)) +
geom_bar(position="dodge") +
opts(legend.position="top")
p
Ma question est: existe-t-il un moyen de supprimer le titre ('Type') de la légende?
Merci!
Vous pouvez modifier le titre de la légende en le passant comme premier paramètre à une échelle. Par exemple:
ggplot(carrots, aes(y=MeanLength, x=Farm, fill=Type)) +
geom_bar(position="dodge") +
theme(legend.position="top", legend.direction="horizontal") +
scale_fill_discrete("")
Il existe également un raccourci pour cela, c'est-à-dire labs(fill="")
Étant donné que votre légende est en haut du graphique, vous pouvez également souhaiter modifier l'orientation de la légende. Vous pouvez le faire en utilisant opts(legend.direction="horizontal")
.
J'ai trouvé que la meilleure option est d'utiliser + theme(legend.title = element_blank())
comme l'utilisateur "gkcn" l'a noté.
Pour moi (le 26/03/15) en utilisant la fonction labs(fill="")
et scale_fill_discrete("")
précédemment suggérée, supprimez un titre, seulement pour ajouter une autre légende, ce qui n'est pas utile.
Vous pouvez utiliser labs
:
p + labs(fill="")
La seule façon de travailler pour moi était d'utiliser legend.title = theme_blank()
et je pense que c'est la variante la plus pratique par rapport à labs(fill="")
et scale_fill_discrete("")
, qui pourrait également être utile dans certains cas.
ggplot(carrots,aes(y=MeanLength,x=Farm,fill=Type)) +
geom_bar(position="dodge") +
opts(
legend.position="top",
legend.direction="horizontal",
legend.title = theme_blank()
)
P.S. Il existe des options plus utiles dans documentation .
Vous avez déjà deux bonnes options, alors voici une autre utilisant scale_fill_manual()
. Notez que cela vous permet également de spécifier facilement les couleurs des barres:
ggplot(carrots,aes(y=MeanLength,x=Farm,fill=Type)) +
geom_bar(position="dodge") +
opts(legend.position="top") +
scale_fill_manual(name = "", values = c("Orange" = "orange", "Purple" = "purple"))
Si vous utilisez la version à jour (en date de janvier 2015) de ggplot2 (version 1.0), alors ce qui suit devrait fonctionner:
ggplot(carrots, aes(y = MeanLength, x = Farm, fill = Type)) +
geom_bar(stat = "identity", position = "dodge") +
theme(legend.position="top") +
scale_fill_manual(name = "", values = c("Orange" = "orange", "Purple" = "purple"))