Vì câu hỏi và câu trả lời của người dùng3490026 là một mục tiêu tìm kiếm hàng đầu, tôi đã đưa ra một ví dụ có thể lặp lại và một minh họa ngắn gọn về các đề xuất được đưa ra cho đến nay, cùng với một giải pháp giải quyết rõ ràng câu hỏi của OP.
Một trong những điều ggplot2
làm và có thể gây nhầm lẫn là nó tự động pha trộn một số truyền thuyết nhất định khi chúng được liên kết với cùng một biến. Chẳng hạn, factor(gear)
xuất hiện hai lần, một lần cho linetype
và một lần cho fill
, dẫn đến một huyền thoại kết hợp. Ngược lại, gear
có mục huyền thoại riêng của nó vì nó không được coi là giống như factor(gear)
. Các giải pháp được cung cấp cho đến nay thường hoạt động tốt. Nhưng đôi khi, bạn có thể cần ghi đè các hướng dẫn. Xem ví dụ cuối cùng của tôi ở phía dưới.
# 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()
Xóa tất cả các huyền thoại: @ user3490026
p + theme(legend.position = "none")
Xóa tất cả các huyền thoại: @duhaime
p + guides(fill = FALSE, color = FALSE, linetype = FALSE, shape = FALSE)
Tắt truyền thuyết: @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()
Xóa điền để linetype hiển thị
p + guides(fill = FALSE)
Tương tự như trên thông qua hàm scale_fill_:
p + scale_fill_discrete(guide = FALSE)
Và bây giờ một câu trả lời có thể cho yêu cầu của OP
"để giữ huyền thoại của một lớp (trơn tru) và loại bỏ huyền thoại của lớp kia (điểm)"
Bật một số tắt một số quảng cáo hậu hoc
p + guides(fill = guide_legend(override.aes = list(color = NA)),
color = FALSE,
shape = FALSE)