Tôi muốn group
dữ liệu của mình dựa trên sự tương tác của hai biến, nhưng chỉ vẽ bản đồ thẩm mỹ cho một trong các biến đó. (Biến số khác đại diện cho các bản sao mà theo lý thuyết, tương đương với nhau). Tôi có thể tìm thấy những cách không thích hợp để làm điều này, nhưng có vẻ như phải có cách thanh lịch hơn để làm điều đó.`geom_line()` kết nối các điểm được ánh xạ tới các nhóm khác nhau
Ví dụ
# Data frame with two continuous variables and two factors
set.seed(0)
x <- rep(1:10, 4)
y <- c(rep(1:10, 2)+rnorm(20)/5, rep(6:15, 2) + rnorm(20)/5)
treatment <- gl(2, 20, 40, labels=letters[1:2])
replicate <- gl(2, 10, 40)
d <- data.frame(x=x, y=y, treatment=treatment, replicate=replicate)
ggplot(d, aes(x=x, y=y, colour=treatment, shape=replicate)) +
geom_point() + geom_line()
này hầu hết được điều đó đúng, ngoại trừ việc tôi không muốn đại diện cho điểm với hình dạng khác nhau. Nó có vẻ như group=interaction(treatment, replicate)
sẽ giúp (ví dụ dựa trên this question, nhưng geom_line()
vẫn kết nối điểm trong các nhóm khác nhau:
ggplot(d, aes(x=x, y=y, colour=treatment, group=interaction("treatment", "replicate"))) +
geom_point() + geom_line()
tôi có thể giải quyết vấn đề bằng cách thủ công tạo ra một cột tương tác và group
ing bởi rằng:
d$interact <- interaction(d$replicate, d$treatment)
ggplot(d, aes(x=x, y=y, colour=treatment, group=interact)) +
geom_point() + geom_line()
nhưng có vẻ như cần phải có thêm ggplot2
cách -native để nhận được geom_line
để chỉ kết nối các điểm từ cùng một nhóm.
Tại sao bạn đặt 'tương tác (" xử lý "," sao chép ")' trong ví dụ thứ hai không phải tên thực tế của cột? Đối với tôi 'nhóm = tương tác (điều trị, nhân bản)' cho kết quả mong đợi –
có thể trùng lặp của [nhóm bởi hai cột trong ggplot2] (http://stackoverflow.com/questions/9968976/group-by-two-columns-in- ggplot2) –
Sự khác biệt là trong câu hỏi được trích dẫn (mà tôi muốn liên kết ban đầu, bây giờ đã chỉnh sửa để thêm liên kết) câu trả lời _does_ sử dụng dấu ngoặc kép - nhưng nó cũng sử dụng 'qplot'. Tôi đoán 'qplot' cần các biến trong dấu ngoặc kép, trong khi' ggplot' lấy chúng trực tiếp. –