Eliminar leyendas adicionales en ggplot2

Tengo un dataframe simple que estoy tratando de hacer una línea combinada y punto usando ggplot2 . Suponiendo que mis datos se vean así:

 df <- data.frame(x=rep(1:10,2), y=c(1:10,11:20), group=c(rep("a",10),rep("b",10))) 

Y estoy tratando de hacer una ttwig:

 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 

El resultado se ve bien con una excepción. Tiene una leyenda extra que muestra el alpha para mi capa geom_point .

<img src="http://sofes.miximages.com/r/tCeVym.jpg" alt="Leyenda adicional para la transparencia de geom_point “>

¿Cómo puedo mantener la leyenda mostrando los colores del grupo, pero no la que muestra mi configuración alfa?

La estética se puede establecer o mapear dentro de una llamada ggplot .

  • Una estética definida dentro de aes(...) se mapea a partir de los datos y se crea una leyenda.
  • Una estética también se puede establecer en un único valor, definiéndola fuera de aes() .

En este caso, parece que desea establecer alpha = 0.8 y asignar colour = group .

Para hacer esto,

Coloque el alpha = 0.8 fuera de la definición 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 

enter image description here

Para cualquier variable mapeada puede suprimir la apariencia de una leyenda usando guide = 'none' en la scale_... apropiada scale_... llamada. p.ej.

 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') 

Que devolverá una ttwig idéntica

El comentario de EDIT @ Joran es acertado, hice mi respuesta más completa

Simplemente agregue el código show.legend = F después de la parte donde no lo desea.

 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) 

Para las versiones anteriores de ggplot2 (versiones anteriores a 0.9.2, lanzadas a finales de 2012), esta respuesta debería funcionar:

Intenté esto con un colour_scale y no funcionó. Parece que el elemento colour_scale_hue funciona como una función con un parámetro predeterminado TRUE . scale_colour_hue(legend=FALSE) y funcionó.

No estoy seguro de si este es el caso para todos los elementos de escala de color en ggplot