在我的图表中,我有重叠,尝试使用position_dodge的位置,但无济于事。我制作了一个重现问题的示例程序:
data1 <- data.frame(source=c("group1", "group1"), q=c("Q1", "Q2"), mean=c(2.6, 1.9), se=c(0.16, 0.4))
data2 <- data.frame(source=c("group2", "group2"), q=c("Q1", "Q2"), mean=c(2.4, 0.9), se=c(0.2, 0.1))
pd <- position_dodge(1)
ggplot(data1) +
geom_errorbar(data=data1, position=pd, width=.3, aes(x=q,ymin=mean-se,ymax=mean+se,color=source)) +
geom_point(size=3, position=pd,data = data1, aes(x=q, y=mean, color=source, shape=source)) +
geom_errorbar(data=data2, position=pd, width=.3, aes(x=q,ymin=mean-se,ymax=mean+se,color=source)) +
geom_point(size=3, position=pd,data = data2, aes(x=q, y=mean, color=source, shape=source))
我做错了什么?
答案 0 :(得分:2)
Dodgind无法正常工作,因为您有两个数据框。将所有数据放在一个数据框中,然后就可以了。
data3<-rbind(data1,data2)
ggplot(data3)+
geom_errorbar(position=pd, width=.3, aes(x=q,ymin=mean-se,ymax=mean+se,color=source)) +
geom_point(size=3, position=pd,aes(x=q, y=mean, color=source, shape=source))