Giả sử tôi không cần ánh xạ biến 'thích hợp' nhưng vẫn muốn có các khóa chú giải để giúp hiểu biểu đồ. dữ liệu thực tế của tôi cũng tương tự như các df sauCác khóa chú giải khác nhau bên trong cùng một chú giải trong ggplot2
df <- data.frame(id = 1:10, line = rnorm(10), points = rnorm(10))
library(ggplot2)
ggplot(df) +
geom_line(aes(id, line, colour = "line")) +
geom_point(aes(id, points, colour = "points"))
Về cơ bản, tôi muốn truyền thuyết then chốt liên quan đến points
là .. chỉ là một điểm, mà không cần dòng ở giữa. Tôi đã gần với điều này:
library(reshape2)
df <- melt(df, id.vars="id")
ggplot() +
geom_point(aes(id, value, shape = variable), df[df$variable=="points",]) +
geom_line(aes(id, value, colour = variable), df[df$variable=="line",])
nhưng nó xác định hai truyền thuyết riêng biệt. Việc sửa mã thứ hai (và phải định hình lại dữ liệu của tôi) cũng sẽ ổn, nhưng tôi thích cách (nếu có) để thay đổi bất kỳ khóa chú giải nào theo cách thủ công (và tiếp tục sử dụng lần đầu tiên). Cảm ơn!
EDIT:
cảm ơn @alexwhan bạn đã làm mới bộ nhớ của tôi về ánh xạ biến. Tuy nhiên, cách dễ nhất tôi đã có cho đến nay vẫn là như sau (rất xấu Hack!):
df <- data.frame(id = 1:10, line = rnorm(10), points = rnorm(10))
ggplot(df) +
geom_line(aes(id, line, colour = "line")) +
geom_point(aes(id, points, shape = "points")) +
theme(legend.title=element_blank())
mà chỉ được che giấu tên của hai truyền thuyết khác nhau.
Các ý tưởng khác được hoan nghênh !!!
phương pháp rất đẹp. Có lẽ là tốt nhất có sẵn. Tôi chỉ muốn chờ một người khác, nhưng có vẻ như đây cũng là người duy nhất :-). Dù sao, cảm ơn rất nhiều! – Michele