我试图为3组绘制一个简单的散点图,覆盖一个段,表示每个组的平均值并标记这些组。 我设法得到一个带有误差条的散点图,但我只想要一个表示均值的区段。我似乎也无法让小组标记正确。
要获取摘要统计信息,我使用this page中的“summarySE”函数。
有没有更简单的方法来做到这一点,并获得一个段而不是一个点的平均值?
我真的很感谢你的帮助!
library(ggplot2)
library(plyr)
df <- data.frame(tt = rep(1:3, each = 40),
val = round(rnorm(120, m = rep(c(4, 5, 7), each = 40))))
# After loading the summarySE function:
dfc <- summarySE(df, measurevar="val", groupvars="tt")
ggplot(dfc, aes(tt, val), main="Scatter plot with mean bars",
xlab="Groups", ylab="Values", names=c("Group1", "Group2", "Group3"))+
geom_jitter(aes(tt, val), data = df, colour = I("red"),
position = position_jitter(width = 0.05)) +
geom_point(size = 3) +
geom_errorbar(aes(ymin=val-sd, ymax=val+sd), width = 0.01, size = 1)
答案 0 :(得分:2)
您可以使用geom_crossbar()
并使用val
作为y
,ymin
和ymax
值。使用scale_x_continuous()
,您可以更改原始数据的x轴标签,或使用@agstudy解决方案更改原始数据,标签将自动显示。
ggplot()+
geom_jitter(aes(tt, val), data = df, colour = I("red"),
position = position_jitter(width = 0.05)) +
geom_crossbar(data=dfc,aes(x=tt,ymin=val, ymax=val,y=val,group=tt), width = 0.5)+
scale_x_continuous(breaks=c(1,2,3),labels=c("Group1", "Group2", "Group3"))
答案 1 :(得分:1)
要获得组标签,您可以更改连续tt这样的因素:
dfc$tt <- factor(dfc$tt,labels=c("Group1", "Group2", "Group3"))
当然在致电summarySE
并创建dfc
之前。
并使用下面其他解决方案中提到的crossbar
,您将获得: