Удалите 'a' из легенды при использовании эстетики и geom_text

Как я могу удалить букву "a" из легенды, сгенерированной этим кодом? Если я удалю geom_text, тогда буква "a" не будет отображаться в легенде. Однако я хочу сохранить geom_text.

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

Ответ 1

Установите show.legend = FALSE в 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)

Аргумент show_guide изменил имя на show.legend в ggplot2 2.0.0 (посмотреть новости выпуска).


Пред- ggplot2 2.0.0:

С show_guide = FALSE так же...

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

enter image description here

Ответ 2

У меня была похожая проблема . Решение Саймона работало для меня, но требовался небольшой поворот. Я не понимал, что мне нужно добавить "show_guide = F" в аргументы geom_text, а не заменять собой существующие аргументы - это то, что показывает решение Simon. Для ggplot2 noob, как я, это было не так очевидно. Правильный пример использовал бы код OP и просто добавил отсутствующий аргумент следующим образом:

..
geom_text(aes(label=Species), show_guide = F) +
..

Ответ 3

Как сказал Ник

следующий код все равно выдаст ошибку:

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

enter image description here

в то время как:

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

вне аргумента aes устраняет над легендой

enter image description here

Ответ 4

Мы можем использовать guide_legend(override.aes = aes(...)) чтобы скрыть 'a' в легенде.

Ниже приведен краткий пример того, как вы можете использовать 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 see what the default legend looks like.
p

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

Создано в 2019-04-29 пакетом представлением (v0.2.1)