Supposons que j'ai un ggplot avec plus d'une légende.
mov <- subset(movies, length != "")
(p0 <- ggplot(mov, aes(year, rating, colour = length, shape = mpaa)) +
geom_point()
)
Je peux désactiver l'affichage de toutes les légendes comme ceci:
(p1 <- p0 + theme(legend.position = "none"))
Passer show_guide = FALSE
à geom_point
(conformément à cette question ) désactive la légende de la forme.
(p2 <- ggplot(mov, aes(year, rating, colour = length, shape = mpaa)) +
geom_point(show_guide = FALSE)
)
Mais que se passe-t-il si je souhaite désactiver la légende des couleurs à la place? Il ne semble pas y avoir de moyen de dire à show_guide
quelle légende appliquer son comportement. Et il n'y a aucun show_guide
argument pour les échelles ou l'esthétique.
(p3 <- ggplot(mov, aes(year, rating, colour = length, shape = mpaa)) +
scale_colour_discrete(show_guide = FALSE) +
geom_point()
)
# Error in discrete_scale
(p4 <- ggplot(mov, aes(year, rating, shape = mpaa)) +
aes(colour = length, show_guide = FALSE) +
geom_point()
)
#draws both legends
Cette question suggère que la façon moderne (depuis ggplot2 v0.9.2) de contrôler les légendes est avec la guides
fonction.
Je veux pouvoir faire quelque chose comme
p0 + guides(
colour = guide_legend(show = FALSE)
)
mais guide_legend
n'a pas d'argument show.
Comment spécifier les légendes à afficher?
ggplot2
mise à jour,show_guide
a été déprécié et remplacé parshow.legend
.Réponses:
Vous pouvez utiliser
guide=FALSE
dansscale_..._...()
pour supprimer la légende.Pour votre exemple, vous devez utiliser
scale_colour_continuous()
carlength
est une variable continue (non discrète).Ou fonction à l' aide
guides()
vous devez définirFALSE
pour cet élément / esthétique que vous ne voulez pas apparaître comme la légende, par exemple,fill
,shape
,colour
.METTRE À JOUR
Les deux solutions fournies fonctionnent dans la nouvelle
ggplot2
version 2.0.0 mais l'movies
ensemble de données n'est plus présent dans cette bibliothèque. Au lieu de cela, vous devez utiliser un nouveau packageggplot2movies
pour vérifier ces solutions.la source
guides(alpha=FALSE)
faire l'affaire. Merci, Didzis.geom_linerange()
et que la légende montre une croix au lieu d'une ligne, insérez-lashow.legend=FALSE
à l'intérieur dugeom_linerange()
.Vous pouvez simplement ajouter
show.legend=FALSE
à geom pour supprimer la légende correspondantela source