Удалите "a" из легенды при использовании эстетики и geom_text
Как я могу удалить букву "а" из легенды, сгенерированной этим кодом? Если я удалю geom_text
, тогда буква "а" не будет отображаться в легенде. Я хочу сохранить geom_text
, хоть.
ggplot(data = iris, aes(x = Sepal.Length, y=Sepal.Width, shape = Species, colour = Species)) +
geom_point() +
geom_text(aes(label = Species))
7 ответов
Задавать 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 )
Мы можем использовать guide_legend(override.aes = aes(...))
скрыть "а" в легенде.
Ниже приведен краткий пример того, как вы можете использовать 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 = "")
)
)
Создано в 2019-04-29 пакетом представлением (v0.2.1)
У меня была похожая проблема. Решение Саймона сработало для меня, но требовался небольшой поворот. Я не осознавал, что мне нужно добавить "show_guide = F" к аргументам geom_text, а не заменить им существующие аргументы - это то, что показывает решение Саймона. Для новичка ggplot2, как я, это было не так очевидно. Правильный пример использовал бы код OP и просто добавил отсутствующий аргумент, например:
..
geom_text(aes(label=Species), show_guide = F) +
..
Как сказал Ник
следующий код все равно выдаст ошибку:
geom_text(aes(x=1,y=2,label="",show_guide=F))
в то время как:
geom_text(aes(x=1,y=2,label=""),show_guide=F)
вне аргумента aes устраняет над легендой
У меня была аналогичная проблема: за точками разного цвета появлялась буква "а", которую я пытался обозначить geom_text_repel
. Чтобы удалить букву "а", чтобы она отображала точку без "а" позади нее, мне пришлось добавитьshow.legend=FALSE
как аргумент в geom_text_repel
.
Надеюсь, это имеет смысл для всех, кто сталкивается с той же проблемой!
Вы также можете использовать show.legend = FALSE
в аргументах geom_label_repel()
убрать букву "а" в легенде. Итак, вместо
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"
)+ guides(
fill = guide_legend(
title = "Legend Title",
override.aes = aes(label = "")
)
)
ты можешь сделать,
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",
show.legend = FALSE )
Построение верхнего ответа. Если бы вы хотели толькоgeom_text()
быть видимым, но иметь этоgeom_point()
для вашей легенды вы можете установить альфу на 0, сделав ее невидимой, но переопределить ее на 1 в направляющих, чтобы она отображалась.
ggplot(data = iris, aes(x = Sepal.Length, y=Sepal.Width,
shape = Species, colour = Species)) +
geom_point(alpha = 0) +
geom_text(aes(label = Species)) +
guides(color = guide_legend(override.aes = aes(label = "", alpha = 1)))