如何使用 ggplot2 按组(性别分析)创建平均图?
How to create a meanplot by group (gender analysis) using ggplot 2?
好的,我想使用 ggplot2 在 R 中创建以下绘图:
Gender based meanplot
下面是产生所示输出的实际代码:
boxplot(mydata$socialanxiety~mydata$sex1,
+ horizontal=F, col = "gray", na.action=na.omit)
plotmeans(socialanxiety~sex1,xlab="Gender", ylab="Anxiety",
+ main="Mean Plot", data = mydata)
stripchart(mydata$socialanxiety~mydata$sex1,vertical=F,
+ xlab='Anxiety')
meanvec = tapply(mydata$socialanxiety,mydata$sex1,mean)
abline(h=1:2,lty=2,col="black")
points(meanvec,1:2, pch=17, col="red", cex=2)
其中 mydata
是具有 3 列的观察数据框:
socialanxiety
: 患者的社交焦虑程度
sex1
: 患者性别
这是重新创建一些示例数据的代码片段。
n <- 100
mydata <- data.frame(socialanxiety=rnorm(n),
sex1=sample(c("male","female"),n,replace=T))
PS: 这些是虚构的数据。
提前致谢
set.seed(1)
n <- 100
mydata <- data.frame(socialanxiety=rnorm(n),
sex1=sample(c(1,2),n,replace=T))
library(ggplot2)
ggplot(data=mydata, aes(x=sex1, y=socialanxiety)) +
geom_point(pch=0, size=3) +
stat_summary(fun.y = mean, color = "red", geom = "point", aes(group=sex1), size=5, pch=17)+
geom_vline(aes(xintercept=as.numeric(sex1)), lty=2) +
scale_x_continuous(breaks=c(1,2), labels=c("F", "M")) +
coord_flip() + theme_bw()
好的,我想使用 ggplot2 在 R 中创建以下绘图: Gender based meanplot
下面是产生所示输出的实际代码:
boxplot(mydata$socialanxiety~mydata$sex1,
+ horizontal=F, col = "gray", na.action=na.omit)
plotmeans(socialanxiety~sex1,xlab="Gender", ylab="Anxiety",
+ main="Mean Plot", data = mydata)
stripchart(mydata$socialanxiety~mydata$sex1,vertical=F,
+ xlab='Anxiety')
meanvec = tapply(mydata$socialanxiety,mydata$sex1,mean)
abline(h=1:2,lty=2,col="black")
points(meanvec,1:2, pch=17, col="red", cex=2)
其中 mydata
是具有 3 列的观察数据框:
socialanxiety
: 患者的社交焦虑程度sex1
: 患者性别
这是重新创建一些示例数据的代码片段。
n <- 100
mydata <- data.frame(socialanxiety=rnorm(n),
sex1=sample(c("male","female"),n,replace=T))
PS: 这些是虚构的数据。
提前致谢
set.seed(1)
n <- 100
mydata <- data.frame(socialanxiety=rnorm(n),
sex1=sample(c(1,2),n,replace=T))
library(ggplot2)
ggplot(data=mydata, aes(x=sex1, y=socialanxiety)) +
geom_point(pch=0, size=3) +
stat_summary(fun.y = mean, color = "red", geom = "point", aes(group=sex1), size=5, pch=17)+
geom_vline(aes(xintercept=as.numeric(sex1)), lty=2) +
scale_x_continuous(breaks=c(1,2), labels=c("F", "M")) +
coord_flip() + theme_bw()