79 votes

Supprimer les légendes supplémentaires 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 indiquant l'alpha pour ma geom_point de la couche.

Extra Legend for geom_point transparency

Comment puis-je garder la légende indiquant groupe de couleurs, mais pas celui qui montre mes paramètres alpha?

152voto

mnel Points 48160

L'esthétique peut être défini ou mappé dans un ggplot appel.

  • Une esthétique définie dans aes(...) est mappé à partir des données, et une légende créée.
  • Une esthétique peut également être réglé à une valeur unique, par définition en dehors de aes().

Dans ce cas, il apparaît que vous souhaitez définir alpha = 0.8 et la carte colour = group.

Pour ce faire,

Place de l' alpha = 0.8 à l'extérieur de l' aes() définition.

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

enter image description here

Pour toute mappé variable, vous pouvez supprimer l'apparition d'une légende à l'aide d' guide = 'none' dans la scale_... appel. 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')

Qui sera de retour à l'identique de l'intrigue

MODIFIER @Joran commentaire est sur place, j'ai fait ma réponse plus complète

0voto

Georgette Points 1

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é cela avec 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.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X