Як питання, так і користувач3490026 відповідь «s є топ пошуку хіта, я зробив відтворений приклад і коротка ілюстрація пропозицій зроблено до сих пір, разом з рішенням , яке явно звертається на питання OP ще.
Одне з речей, що ggplot2
робить і що може заплутати, - це те, що він автоматично поєднує певні легенди, коли вони пов'язані з тією ж змінною. Наприклад, factor(gear)
з’являється двічі, один раз linetype
і один раз fill
, що призводить до комбінованої легенди. На противагу цьому, gear
є своя запис легенди, оскільки вона не трактується так само, як factor(gear)
. Пропоновані досі рішення зазвичай працюють добре. Але іноді може знадобитися перекриття напрямних. Дивіться мій останній приклад внизу.
# reproducible example:
library(ggplot2)
p <- ggplot(data = mtcars, aes(x = mpg, y = disp, group = gear)) +
geom_point(aes(color = vs)) +
geom_point(aes(shape = factor(cyl))) +
geom_line(aes(linetype = factor(gear))) +
geom_smooth(aes(fill = factor(gear), color = gear)) +
theme_bw()
Видалити всі легенди: @ user3490026
p + theme(legend.position = "none")
Видаліть усі легенди: @duhaime
p + guides(fill = FALSE, color = FALSE, linetype = FALSE, shape = FALSE)
Вимкніть легенди: @Tjebo
ggplot(data = mtcars, aes(x = mpg, y = disp, group = gear)) +
geom_point(aes(color = vs), show.legend = FALSE) +
geom_point(aes(shape = factor(cyl)), show.legend = FALSE) +
geom_line(aes(linetype = factor(gear)), show.legend = FALSE) +
geom_smooth(aes(fill = factor(gear), color = gear), show.legend = FALSE) +
theme_bw()
Видаліть заповнення, щоб лінійка стала видимою
p + guides(fill = FALSE)
Те саме, що описано вище за допомогою функції scale_fill_:
p + scale_fill_discrete(guide = FALSE)
А тепер одна можлива відповідь на запит ОП
"зберегти легенду про один шар (гладкою) та видалити легенду про інший (точка)"
Увімкніть деякий час від часу спеціальних спеціальних заходів
p + guides(fill = guide_legend(override.aes = list(color = NA)),
color = FALSE,
shape = FALSE)