Khi sử dụng ggplot2 để tạo các ô mặt, tôi gặp sự cố khi nhận từng nhãn riêng lẻ trong mỗi khía cạnh khi tôi cũng chỉ định tham số nhóm. Nếu không chỉ định group = ...
, mọi thứ hoạt động tốt, nhưng tôi đang cố gắng tạo ra các lô dữ liệu ghép nối nhấn mạnh các thay đổi trước và sau khi điều trị.geom_text với facet_wrap trong ggplot2 khi nhóm được chỉ định
Dưới đây là một ví dụ:
library(tidyr)
library(ggplot2)
set.seed(253)
data <- data.frame(Subject = LETTERS[1:10],
Day1.CompoundA = rnorm(10, 4, 2),
Day2.CompoundA = rnorm(10, 7, 2),
Day1.CompoundB = rnorm(10, 5, 2),
Day2.CompoundB = rnorm(10, 5.5, 2))
# Compare concentration of compounds by day
A <- t.test(data$Day1.CompoundA, data$Day2.CompoundA, paired = TRUE)
B <- t.test(data$Day1.CompoundB, data$Day2.CompoundB, paired = TRUE)
data.long <- gather(data, key = DayCompound, value = Concentration, -Subject) %>%
separate(DayCompound, c("Day", "Compound"))
# text to annotate graphs
graphLabels <- data.frame(Compound = c("CompoundA", "CompoundB"),
Pval = paste("p =", c(signif(A$p.value, 2),
signif(B$p.value, 2))))
Ok, bây giờ mà các dữ liệu được thiết lập, tôi có thể làm cho một boxplot tốt:
ggplot(data.long, aes(x = Day, y = Concentration)) +
geom_boxplot() +
facet_wrap(~ Compound) +
geom_text(data = graphLabels, aes(x = 1.5, y = 10, label = Pval))
Nhưng nếu tôi muốn để hiển thị các ô dòng nhấn mạnh tính chất ghép nối của dữ liệu bằng cách hiển thị từng đối tượng theo một màu khác nhau, các nhãn khía cạnh không hoạt động.
ggplot(data.long, aes(x = Day, y = Concentration, color = Subject, group = Subject)) +
geom_point() + geom_line() +
facet_wrap(~ Compound) +
geom_text(data = graphLabels, aes(x = 1.5, y = 10, label = Pval))
# Error in eval(expr, envir, enclos) : object 'Subject' not found
Mọi đề xuất?
Cảm ơn bạn! Điều đó làm việc rất đẹp! – LauraS