Як питання, так і користувач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)
