Saya mencoba untuk menjaga legenda satu lapisan (halus) dan menghapus legenda yang lain (titik). Saya telah mencoba mematikan legenda dengan guides(colour = FALSE)
dan geom_point(aes(color = vs), show.legend = FALSE)
.
Sunting : Karena pertanyaan ini dan jawabannya populer, contoh yang direproduksi tampaknya berurutan:
library(ggplot2)
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()
Jawaban:
dari r cookbook , di mana bp adalah ggplot Anda:
Hapus legenda untuk estetika tertentu (isi):
Ini juga dapat dilakukan saat menentukan skala:
Ini menghapus semua legenda:
sumber
theme_bw()
dapat mengganggu definisi apa pun yang dilakukantheme()
. Saat menggunakantheme_bw()
, pastikan untuk menambahkannya ke plot sebelum Anda mengubah opsi tema lainnya.bp + theme(legend.position="none") + theme_classic()
, legenda kembali. Jadi bagaimana cara menghapusnya?bp + theme_classic() + theme(legend.position="none")
Mungkin ada solusi lain untuk ini:
Kode Anda adalah:
Anda dapat menentukan
show.legend
parameter setelah ituaes
panggilan:maka legenda yang sesuai akan hilang
sumber
scale_label
perintah (juga tidak masuk akal), danguide(label = FALSE)
juga tidak berhasil. Terima kasih!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 untuklinetype
dan sekali untukfill
, menghasilkan legenda gabungan. Sebaliknya,gear
memiliki entri legenda sendiri karena tidak diperlakukan sama sepertifactor(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.Hapus semua legenda: @ user3490026
Hapus semua legenda: @duhaime
Matikan legenda: @Tjebo
Hapus isian agar linetype menjadi terlihat
Sama seperti di atas melalui fungsi scale_fill_:
Dan sekarang satu jawaban yang mungkin untuk permintaan OP
Matikan beberapa dari ad-hoc post-hoc
sumber
warnings()
setelah Anda menjalankan kode Anda dan Anda akan melihat alasan pita biru tidak muncul.se
ketika itu tidak dihitung. Mungkin bernilai masalah di github, tapi aku tidak punya energi sekarang ...Jika grafik Anda menggunakan keduanya
fill
dancolor
estetika, Anda dapat menghapus legenda dengan:sumber