Retirer l'excédent de légendes dans ggplot2
J'ai un simple bloc de données que je suis en train de faire un combiné de la ligne et le point de la parcelle à l'aide de ggplot2
. En supposant que mes données ressemble à ceci:
df <- data.frame(x=rep(1:10,2), y=c(1:10,11:20),
group=c(rep("a",10),rep("b",10)))
Et je suis en train de faire un terrain:
g <- ggplot(df, aes(x=x, y=y, group=group))
g <- g + geom_line(aes(colour=group))
g <- g + geom_point(aes(colour=group, alpha = .8))
g
Le résultat semble bien, à une exception près. Il a une légende montrant la alpha
pour mon geom_point
couche.
Comment puis-je garder la légende indiquant groupe de couleurs, mais pas celui qui montre mes paramètres alpha?
Vous devez vous connecter pour publier un commentaire.
Esthétique peut être ensemble ou mappé dans un
ggplot
appel.aes(...)
est mappé à partir des données, et une légende créée.aes()
.Dans ce cas, il apparaît que vous souhaitez ensemble
alpha = 0.8
et cartecolour = group
.Pour ce faire,
Lieu le
alpha = 0.8
à l'extérieur de laaes()
définition.Pour tout mappé variable, vous pouvez supprimer l'apparition d'une légende en utilisant
guide = 'none'
dans lascale_...
appel. par exemple.Qui sera de retour à l'identique de l'intrigue
MODIFIER
@Joran commentaire est sur place, j'ai fait ma réponse plus complète
g + scale_alpha(guide = "none")
.group
argument :could not find function "scale_group"
... Une recherche ici n'a fourni aucune indication sur le bon appel de fonction pour modifiergroup
esthétique soit.group
esthétique ne génèrent pas de toutes les échelles ou les guides sur son propre. Il est toujours en sorte de modifier quelque chose d'autre. Vous n'aurez jamais une légende du "groupe" esthétique.Il suffit d'ajouter le
show.legend = F
code après la partie où vous ne le voulez pas.Pour les anciennes versions de ggplot2 (versions avant 0.9.2, sorti fin 2012), cette réponse devrait fonctionner:
J'ai essayé cela avec un
colour_scale
et il ne fonctionne pas. Il semble que lacolour_scale_hue
élément qui fonctionne comme une fonction avec un paramètre par défautTRUE
. J'ai ajoutéscale_colour_hue(legend=FALSE)
et cela a fonctionné.Je ne suis pas sûr si c'est le cas pour toutes les couleurs de l'échelle des éléments dans ggplot
legend
dans unscale_*
appel est obsolète, il vaut mieux nescale_colour_hue(guide = "none")
.legend=FALSE
est obsolète, comme l'a souligné @shujaa commentaire, c'est effectivement un doublon réponse, c'est à dire ajouter leguide = "none"
à unscale_fill/color*
fonction.