我正在嘗試繪制分組密度圖并添加每個圖的平均線;這是代碼
data <- data.frame(
Accuracy=abs(rnorm(140)),
Species=c(rep("A.All",20),rep("B. double",60),rep("C.single",60),
rep("D.All",20),rep("E.double",60),rep("F.single",60)),
Modality=c(rep("All,w0",10),rep("double1,w0",10),rep("double2,w0",10),rep("double3,w0",10),
rep("single1,w0",10),rep("single2,w0",10),rep("single3,w0",10),
rep("All,w2",10),rep("double1,w2",10),rep("double2,w2",10),rep("double3,w2",10),
rep("single1,w2",10),rep("single2,w2",10),rep("single3,w2",10))
)
p<-ggplot(data, aes(x=Accuracy, fill=Modality))
geom_density(alpha=0.4)
facet_wrap(. ~ Species)
xlab("Accuracy") ylab("Density")
library(plyr)
mu <- ddply(data, "Modality", summarise, grp.mean=mean(Accuracy))
head(mu)
# Add mean lines
a<-p geom_vline(data=mu, aes(xintercept=grp.mean, color=Modality),
linetype="dashed") xlab("Accuracy") ylab("Density")
然而,基于輸出數字為

平均線絕對不正確,例如對于左上角的第一張圖片,兩個密度圖應該有兩條線,但是創建了幾條線并為所有數字重復。
uj5u.com熱心網友回復:
您可以同時指定Species和Modality
plyr
dummy <- ddply(data, c("Species","Modality"), summarise, grp.mean=mean(Accuracy))
ggplot(data, aes(x=Accuracy, fill=Modality))
geom_density(alpha=0.4)
facet_wrap(. ~ Species)
xlab("Accuracy") ylab("Density")
geom_vline(data = dummy, aes(xintercept = grp.mean, color = Modality))
dplyr
library(dplyr)
dummy <- data %>%
group_by(Species, Modality) %>%
summarize(mean = mean(Accuracy))
ggplot(data, aes(x=Accuracy, fill=Modality))
geom_density(alpha=0.4)
facet_wrap(. ~ Species)
xlab("Accuracy") ylab("Density")
geom_vline(data = dummy, aes(xintercept = mean, color = Modality))

轉載請註明出處,本文鏈接:https://www.uj5u.com/qiye/375158.html
