2017-06-03 75 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