2016-07-14 11 views
1

ドットプロットを生成し、2つの独立したグループ化変数の平均と95%CIを加算しようとしています(合計2 x 2グループ) 。ggplot 2:2つのグループ化変数の平均と95%CIのドットプロット

g<- ggplot(Data, aes(x = Gender, y = GluNorm, fill=Group))+ 
    geom_dotplot(binaxis='y', stackdir='center',stackratio=1.2, dotsize=1.2, binwidth=0.02, position=position_dodge(0.8)) 


#function that outputs mean, lower limit and upper limit of 95% CI 
data_summary <- function(x) { 
    m <- mean(x, na.rm=TRUE) 
    sem <-sd(x, na.rm=TRUE)/sqrt(sum(!is.na(x))) 
    ymin<-m-1.96*sem 
    ymax<-m+1.96*sem 
    return(c(y=m,ymin=ymin,ymax=ymax)) 
} 

g + stat_summary(fun.data=data_summary, color="red") 

fig1

は、私は次の試みを行った。

GluNorm Gender Treatment 
1.317 Male NAC 
1.278 Male SAL 
1.302 Male SAL 
1.376 Male NAC 
1.279 Male NAC 
1.308 Male SAL 
1.451 Male NAC 
1.244 Male NAC 
1.411 Male SAL 
1.16 Male NAC 
1.159 Male NAC 
1.42 Male SAL 
1.407 Male SAL 
1.62 Male SAL 
1.167 Male SAL 
1.377 Male NAC 
1.393 Female SAL 
1.203 Female NAC 
1.191 Female NAC 
1.132 Female SAL 
1.191 Female SAL 
1.589 Female SAL 
1.169 Female NAC 
1.155 Female SAL 
1.249 Female NAC 
1.401 Female NAC 
1.455 Female SAL 
1.481 Female SAL 
1.293 Female NAC 
1.332 Female NAC 
1.462 Female SAL 

これは私が見えるようにプロットしたいものです。

この

は私のデータであり、次の結果を得る:

fig2

性別x治療グループごとに別々のドットとバーを取得する方法についてアドバイスできますか?

ありがとうございます!

+0

あなたはとてもように位置引数を追加してみてくださいすることができます= Treat'と表示され、データサンプルとコードの整合性が取れますか? – beetroot

+0

はもしかして '塗りつぶし:

enter image description here

eipi10

答えて

3

グラフが重ならないようにあなたは、異なる量でdoplotsと信頼区間をかわす場合は読みやすくなります。代わりにあなたのdata_summary機能の

pd1 = position_dodge(0.2) 
pd2 = position_dodge(0.65) 

ggplot(Data, aes(x = Gender, y = GluNorm, fill=Treatment, color=Treatment))+ 
    geom_dotplot(binaxis='y', stackdir='center',stackratio=1.2, 
       dotsize=0.8, binwidth=0.02, position=pd2) + 
    stat_summary(fun.data=data_summary, position=pd1, geom="errorbar", width=0.05) + 
    stat_summary(fun.data=data_summary, position=pd1, geom="point", size=2) + 
    scale_fill_manual(values=hcl(c(15,195), 100, 60)) + 
    scale_color_manual(values=hcl(c(15,195), 50, 40)) + 
    theme_bw() 

enter image description here

を、組み込み関数を使用することもできます。我々はブートストラップを使用して、95%CI取得下:代わりにドットプロットの

ggplot(Data, aes(x = Gender, y = GluNorm, fill=Treatment, color=Treatment))+ 
    geom_dotplot(binaxis='y', stackdir='center',stackratio=1.2, 
       dotsize=0.8, binwidth=0.02, position=pd2) + 
    stat_summary(fun.data=mean_cl_boot, position=pd1, geom="errorbar", width=0.05) + 
    stat_summary(fun.y=mean, position=pd1, geom="point", size=2) + 
    scale_fill_manual(values=hcl(c(15,195), 100, 60)) + 
    scale_color_manual(values=hcl(c(15,195), 50, 40)) + 
    theme_bw() 

enter image description here

を、あなたはまた、単に重複を避けるためにジッタを追加して、直接ポイントをプロットできます。

ggplot(Data, aes(x = Gender, y = GluNorm, fill=Treatment, color=Treatment))+ 
    geom_point(position=position_jitterdodge(dodge.width=0.65, jitter.height=0, jitter.width=0.25), 
      alpha=0.7) + 
    stat_summary(fun.data=mean_cl_boot, geom="errorbar", width=0.05, position=pd1) + 
    stat_summary(fun.y=mean, geom="point", size=2, position=pd1) + 
    scale_fill_manual(values=hcl(c(15,195), 100, 60)) + 
    scale_color_manual(values=hcl(c(15,195), 50, 40)) + 
    theme_bw() 

enter image description here

またはおそらくボックスプロット:

`stat_summary(fun.data = data_summary、色= "赤"、位置= position_dodge(幅= 0.75))`
+0

これは本当に役に立ちます、私はあなたが示唆するようにgeom_pointを使用するつもりです。私は意味をいっぱい=治療、混乱のために申し訳ありません。 – amsd2

関連する問題