Elimine 'a' de la leyenda cuando use estética y geom_text

Resuelto user2700207 asked hace 55 años • 8 respuestas

¿Cómo puedo eliminar la letra 'a' de la leyenda generada por este código? Si elimino geom_text, la letra 'a' no se mostrará en la leyenda. Aunque quiero conservarlo geom_text.

ggplot(data = iris, aes(x = Sepal.Length, y=Sepal.Width, 
                        shape = Species, colour = Species)) + 
   geom_point() + 
   geom_text(aes(label = Species))
user2700207 avatar Jan 01 '70 08:01 user2700207
Aceptado

Establecer show.legend = FALSEen geom_text:

ggplot(data = iris,
       aes(x = Sepal.Length, y = Sepal.Width, colour = Species,
           shape = Species, label = Species)) + 
    geom_point() +
    geom_text(show.legend = FALSE)

El argumento show_guidecambió de nombre a show.legendin ggplot2 2.0.0( ver noticia del lanzamiento ).


Pre- ggplot2 2.0.0:

Con show_guide = FALSEasi...

ggplot(data = iris, aes(x = Sepal.Length, y = Sepal.Width , colour = Species,
                        shape = Species, label = Species ), size = 20) + 
geom_point() +
geom_text(show_guide  = FALSE)

ingrese la descripción de la imagen aquí

Simon O'Hanlon avatar Aug 20 '2013 14:08 Simon O'Hanlon

Podemos usar guide_legend(override.aes = aes(...))para ocultar la 'a' en la leyenda.

A continuación se muestra un breve ejemplo de cómo podría utilizar Guide_legend()

library(ggrepel)
#> Loading required package: ggplot2

d <- mtcars[c(1:8),]

p <- ggplot(d, aes(wt, mpg)) +
  geom_point() +
  theme_classic(base_size = 18) +
  geom_label_repel(
    aes(label = rownames(d), fill = factor(cyl)),
    size = 5, color = "white"
  )

# Let's see what the default legend looks like.
p

# Now let's override some of the aesthetics:
p + guides(
  fill = guide_legend(
    title = "Legend Title",
    override.aes = aes(label = "")
  )
)

Creado el 29 de abril de 2019 por el paquete reprex (v0.2.1)

Kamil Slowikowski avatar Apr 29 '2019 19:04 Kamil Slowikowski

Tuve un problema similar . La solución de Simon funcionó para mí, pero fue necesario un ligero giro. No me di cuenta de que necesitaba agregar "show_guide = F" a los argumentos de geom_text, en lugar de reemplazar los argumentos existentes, que es lo que muestra la solución de Simon. Para un novato de ggplot2 como yo, esto no era tan obvio. Un ejemplo adecuado habría utilizado el código del OP y simplemente habría agregado el argumento que falta como este:

..
geom_text(aes(label=Species), show_guide = F) +
..
Nick avatar Feb 10 '2015 22:02 Nick

como dijo nick

el siguiente código aún produciría el error:

geom_text(aes(x=1,y=2,label="",show_guide=F))

ingrese la descripción de la imagen aquí

mientras que:

geom_text(aes(x=1,y=2,label=""),show_guide=F)

fuera del argumento aes elimina la a sobre la leyenda

ingrese la descripción de la imagen aquí

Timo Kvamme avatar Aug 15 '2015 14:08 Timo Kvamme

Tuve un problema similar, con una 'a' apareciendo detrás de puntos de diferentes colores con los que estaba tratando de etiquetar geom_text_repel. Para eliminar la 'a', de modo que solo mostrara el punto sin la 'a' detrás, tuve que agregarla show.legend=FALSEcomo argumento en geom_text_repel.

¡Espero que tenga sentido para cualquiera que esté trabajando con el mismo problema!

arranjdavis avatar May 23 '2020 16:05 arranjdavis