2017-06-03 79 views
1

如何分居置信区间我在R.在GGPLOT2

df <- data.frame(Region = rep(1:3,3), education = rep(1:3,each =3), 
       mean = runif(9,0,1) , lo = runif(9, -1 , 0), 
       up = runif(9, 1, 2)) 

ggplot(df, aes(Region, mean)) + geom_point(size=4) + 
geom_errorbar(aes(ymin = lo, ymax = up)) 

正如你所看到的,置信区间彼此相交下面的代码。但是,我想要的是将三个不同的置信区间彼此分隔开,并且可能有三种不同的颜色。用同样的方法,我们用另一种分类变量分离条形图

感谢

回答

1

一个解决办法是:

library(ggplot2) 
set.seed(1) 
df <- data.frame(Region = rep(1:3,3), education = rep(1:3,each =3), 
       mean = runif(9,0,1) , lo = runif(9, -1 , 0), 
       up = runif(9, 1, 2)) 

df$RegEdu <- with(df, interaction(Region, education), drop = TRUE) 

ggplot(df, aes(x=RegEdu, y=mean, colour=factor(education), 
     pch=factor(Region))) + geom_point(size=4) + 
     geom_errorbar(aes(ymin = lo, ymax = up)) 

enter image description here

编辑。 使用facet_grid可以组合在一起的误差条通过education

ggplot(df, aes(x=Region, y=mean, colour=factor(education))) + 
     geom_point(size=4) + 
     geom_errorbar(aes(ymin = lo, ymax = up))+ 
     facet_grid(.~education) 

enter image description here

+0

谢谢你这么多@marco桑德里。它有很多帮助,但是你知道我是否有任何方法将每三个分组在一起。我的意思是让前三个(1.1,2.1,3.1)更接近,以表明它们属于一个组,等等, – Alirsd

+0

非常感谢你@Marco Sandri。它确实有帮助。不幸的是,我无法赞成你,因为我没有足够的声誉 – Alirsd

+0

对不起@Marco桑德里,但我仍然没有足够的声望upvote你:( 当我upvote你,它说,投票记录,但它不会改变公众的分数:( 对不起! – Alirsd