如何将平均线添加到R中的分组密度图中?
Posted
技术标签:
【中文标题】如何将平均线添加到R中的分组密度图中?【英文标题】:How to add the mean line to grouped density plot in R? 【发布时间】:2022-01-12 03:12:21 【问题描述】:我正在尝试绘制分组密度图并添加每个图的平均线;这是代码
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")
但是,根据输出图
平均线是绝对不正确的,例如对于左上角的第一张图片,两个密度图应该有两条线,但是创建了几条线并为所有图重复。
【问题讨论】:
【参考方案1】:您可以同时指定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))
【讨论】:
感谢您的回答!我从您的代码“FUN(X[[i]], ...) 中的错误:找不到对象 'Modality'”中得到这个错误。 @Katie 它确实对我有用。Modality
列是否在 data
内?该错误发生在哪里?
我运行了与您运行的代码相同的代码,但我不确定为什么会出现此错误。
@Katie 你可以试试data
你在上面的问题中指定的吗?而且,该错误发生在哪里?
你帮了我很多!我真的很累。以上是关于如何将平均线添加到R中的分组密度图中?的主要内容,如果未能解决你的问题,请参考以下文章
R语言ggplot2可视化:可视化密度图(Density plot)可视化多个分组的密度图数据点分布在箱图中间添加主标题副标题题注信息
R语言ggplot2可视化:可视化密度图(Density plot)可视化多个分组的密度图数据点分布在箱图中间添加主标题副标题题注信息