Tôi đang cố gắng vẽ nhiều tập dữ liệu trên cùng một ô. Ví dụ, dưới đây, tôi có hai bộ thí nghiệm với cài đặt: "P-0.1" và "P-0.2" được biểu thị bằng hệ số B. Đối với mỗi thử nghiệm, tôi có ba giá trị đầu ra "P", "Q", "O ", như được biểu thị bằng hệ số A. Tôi đã nhóm các thí nghiệm bằng màu tô, và nhóm các kết quả đầu ra theo màu sắc, kiểu dáng và hình dạng.Nhiều truyền thuyết với ggplot2
library(ggplot2)
dat <- data.frame(
A = factor(c("O", "O", "P", "P", "Q", "Q", "O", "O", "P", "P", "Q", "Q"), levels=c("O", "O", "P", "P", "Q", "Q","O", "O", "P", "P", "Q", "Q")),
B = factor(c("P-0.1", "P-0.1", "P-0.1", "P-0.1","P-0.1", "P-0.1", "P-0.2", "P-0.2", "P-0.2", "P-0.2", "P-0.2", "P-0.2"), levels = c("P-0.1", "P-0.1", "P-0.1", "P-0.1","P-0.1", "P-0.1", "P-0.2", "P-0.2", "P-0.2", "P-0.2", "P-0.2", "P-0.2")),
X = c(0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1),
Y = c(10, 15, 12, 13, 9, 14, 30, 20, 32, 21, 27, 19)
)
p = ggplot(data=dat, aes(x=X, y=Y, colour=A, size=A, shape=A, linetype=A, fill=B, group=interaction(A,B))) + geom_point() + geom_line() + theme_bw()
p = p + geom_point(size=4, alpha=0) + geom_point(size=4, show.legend=FALSE) + guides(shape = guide_legend(nrow=3, byrow = TRUE, keywidth = 1.5, keyheight = 1), colour = guide_legend(override.aes = list(alpha=1)))
p = p + scale_shape_manual(name="", values=c(21,22,23))
p = p + scale_colour_manual(name="", values=c("#005ccc", "#007700", "#56B4E9"))
p = p + scale_linetype_manual(name="", values=c(0,0,1))
p = p + scale_size_manual(name="", values = c(1, 1, 1))
p = p + scale_fill_manual(name="", values = c("red", "blue"))
Đoạn mã trên vẽ hình đúng, nhưng tôi nhận được vòng tròn đen trong chú giải cho tỷ lệ lấp đầy, nơi tôi đang mong các hộp màu đỏ và xanh dương. Làm thế nào để sửa lỗi này?
này làm việc cho tôi 'p = p + scale_fill_manual (name = "", giá trị = c ("đỏ", "xanh"), guide = guide_legend (override.aes = aes (hình dạng = 21))) '. Thông tin thêm [tại đây] (https://github.com/hadley/ggplot2/issues/857) – Tung
Cảm ơn bạn đã chỉ ra điều này. Điều này không hoạt động. – max
Để nhận các hộp màu đỏ và xanh dương, bạn có thể muốn sử dụng 'override.aes = list (hình = 22, size = 5)' – Jaap