我有一个由整数和两个分类变量组成的数据框
x<-sample(1:150, 100, replace=TRUE)
z<- sample(x=c("A","B"), size=100, replace=TRUE, prob=rep(1/2, 2))
w<-sample(x=c("Site1", "Site2"), size=100, replace=TRUE, prob=rep(1/2,2))
df<-cbind(x,z,w)
df<-data.frame(df)
colnames(df) <- c("Age", "Maturity", "Site")
df$x<-as.numeric(df$x)
我正在尝试使用ggplot绘制两个重叠密度图的图,这些图通过成熟阶段着色,每个阶段使用平均垂直线,并由场地分割。我用过这段代码
cdat <- ddply(df, "Maturity", summarise, Agemean=mean(Age))
ggplot(df, aes(x=Age, fill=Maturity)) + geom_density(alpha=.2) +
geom_vline(data=cdat, aes(xintercept=Agemean, colour=Maturity),
linetype="dashed", size=1)+
facet_grid(Site~.)
我希望情节有4个vlines,每个方面有2个成熟阶段。我四处寻找答案,发现我必须创建一个具有平均值的数据框,但我只能使它为每个方面应用一个唯一的vline。
任何帮助将不胜感激
P.S。抱歉数据生成代码有多乱。