Поскольку вопрос и ответ пользователя 3490026 являются популярным поисковым хитом, я привел воспроизводимый пример и краткую иллюстрацию выдвинутых на данный момент предложений, а также решение, которое явно касается вопроса ОП.
Одна из вещей, которая 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)
А теперь один возможный ответ на запрос ОП
«сохранить легенду одного слоя (гладкой) и удалить легенду другого (точки)»
Включите некоторые из некоторых специальных пост-hoc
p + guides(fill = guide_legend(override.aes = list(color = NA)),
color = FALSE,
shape = FALSE)
