J'ai un cadre de données simple que j'essaie de faire un tracé combiné de lignes et de points en utilisant ggplot2
. Supposons que mes données ressemblent à ceci:
df <- data.frame(x=rep(1:10,2), y=c(1:10,11:20),
group=c(rep("a",10),rep("b",10)))
Et j'essaye de faire un complot:
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 correct à une exception près. Il a une légende supplémentaire montrant le alpha
pour ma geom_point
couche.
Comment puis-je conserver la légende affichant les couleurs du groupe, mais pas celle qui affiche mes paramètres alpha?
g + scale_alpha(guide = "none")
.group
esthétique ne génère pas d'échelle ou de guide à elle seule. Il s'agit toujours de modifier quelque chose d'autre. Vous n'obtiendrez jamais une légende pour l'esthétique du «groupe».Ajoutez simplement le
show.legend = F
code après la partie où vous ne le souhaitez pas.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), show.legend = F)
la source
Pour les anciennes versions de ggplot2 (versions antérieures à 0.9.2, publiées fin 2012), cette réponse devrait fonctionner:
J'ai essayé cela avec un
colour_scale
et cela n'a pas fonctionné. Il semble que l'colour_scale_hue
élément 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 que ce soit le cas pour tous les éléments d'échelle de couleurs dans ggplot
la source
legend
dans unscale_*
appel est obsolète, mieux vaut le fairescale_colour_hue(guide = "none")
.legend=FALSE
est obsolète, comme indiqué par le commentaire @shujaa, il s'agit en fait d'une réponse en double, c'est-à-dire d'ajouter leguide = "none"
à unescale_fill/color*
fonction.