J'ai un cadre de données simple que j'essaie de faire un tracé combiné de lignes et de points en utilisant ggplot2
. En supposant 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 bon, à une exception près. Il a une légende supplémentaire montrant le alpha
pour mon geom_point
couche.
Comment puis-je conserver la légende affichant les couleurs du groupe, mais pas celle indiquant les paramètres alpha?
L'esthétique peut être définir ou mappée dans un appel ggplot
.
aes(...)
est mappée à partir des données et une légende est créée.aes()
.Dans ce cas, il semble que vous souhaitiez définiralpha = 0.8
Et mapcolour = group
.
Pour faire ça,
Placez le alpha = 0.8
En dehors de la définition de aes()
.
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 = 0.8)
g
Pour toute variable mappée, vous pouvez supprimer l’apparence d’une légende en utilisant guide = 'none'
Dans l’appel approprié scale_...
. par exemple.
g2 <- ggplot(df, aes(x = x, y = y, group = group)) +
geom_line(aes(colour = group)) +
geom_point(aes(colour = group, alpha = 0.8))
g2 + scale_alpha(guide = 'none')
Ce qui retournera une parcelle identique
EDIT Le commentaire de @ Joran est sur le vif, j'ai rendu ma réponse plus complète
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)
Pour les anciennes versions de ggplot2 (versions antérieures à la 0.9.2, publiées fin 2012), cette réponse devrait fonctionner:
J'ai essayé ceci avec un colour_scale
Et cela n'a pas fonctionné. Il semble que l'élément colour_scale_hue
Fonctionne comme une fonction avec un paramètre par défaut TRUE
. 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 couleur dans ggplot.