Karena pertanyaan dan jawaban user3490026 adalah hit pencarian teratas, saya telah membuat contoh yang dapat direproduksi dan ilustrasi singkat dari saran yang dibuat sejauh ini, bersama dengan solusi yang secara eksplisit menjawab pertanyaan OP.
Salah satu hal yang ggplot2
dilakukan dan yang dapat membingungkan adalah bahwa ia secara otomatis memadukan legenda tertentu ketika mereka dikaitkan dengan variabel yang sama. Misalnya, factor(gear)
muncul dua kali, sekali untuk linetype
dan sekali untuk fill
, menghasilkan legenda gabungan. Sebaliknya, gear
memiliki entri legenda sendiri karena tidak diperlakukan sama seperti factor(gear)
. Solusi yang ditawarkan sejauh ini biasanya bekerja dengan baik. Tetapi kadang-kadang, Anda mungkin perlu mengganti panduan. Lihat contoh terakhir saya di bagian bawah.
# 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()
Hapus semua legenda: @ user3490026
p + theme(legend.position = "none")
Hapus semua legenda: @duhaime
p + guides(fill = FALSE, color = FALSE, linetype = FALSE, shape = FALSE)
Matikan legenda: @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()
Hapus isian agar linetype menjadi terlihat
p + guides(fill = FALSE)
Sama seperti di atas melalui fungsi scale_fill_:
p + scale_fill_discrete(guide = FALSE)
Dan sekarang satu jawaban yang mungkin untuk permintaan OP
"untuk menjaga legenda satu lapisan (halus) dan menghapus legenda lainnya (titik)"
Matikan beberapa dari ad-hoc post-hoc
p + guides(fill = guide_legend(override.aes = list(color = NA)),
color = FALSE,
shape = FALSE)