ggplot2でエラーバー付き棒グラフを作成

ggplot2でエラーバー付き棒グラフを作成してみる.

まずRmiscを読み込む.Rmiscを用いるとSE,SD,CIをいっぺんに計算してくれる.

こんなデータがある.全データを載せるのはめんどくさいのでheadとsummaryでなんとなくデータを出してみた.
head()はデータの頭だけを見せてくれる関数.summary()はデータの要約をする関数.
要するに,1列目にmbp(平均血圧)という列名で100データあり,2列目にtsk(課題名)という列名(AとB)でAが50,Bが50ある.つまり,Aの血圧データが50,Bのデータが50あるということを意味している.


> head(bp)
  mbp tsk
1  57   A
2  54   A
3  68   A
4  60   A
5  68   A
6  69   A
> summary(bp)
      mbp         tsk   
 Min.   : 47.00   A:50  
 1st Qu.: 68.00   B:50  
 Median : 78.00         
 Mean   : 77.89         
 3rd Qu.: 86.25         
 Max.   :110.00 


それでもってRmiscパッケージを読み込む.
> library(Rmisc)


summarySE()という関数で平均値とSD,SE,CIを一気に計算
> bpdat<-summarySE(bp,measurevar="mbp",groupvar="tsk")
> bpdat
  tsk  N   mbp       sd       se       ci
1   A 50 70.18 10.73368 1.517971 3.050477
2   B 50 85.60 10.32730 1.460500 2.934985

すばらしい.


ggplot2を読み込む
> library(ggplot2)

図を作成
> g<-ggplot(bpdat,aes(x=tsk,y=mbp,fill=tsk))

棒グラフを指定
> g<-g+geom_bar(stat="identity")
エラーバーを追加
> g<-g+geom_errorbar(aes(ymin=mbp-ci,ymax=mbp+ci,width=.2))
X軸にラベルを追加
> g<-g+xlab("Task")
Y軸にラベルを追加
> g<-g+ylab("Mean Blood Pressure (mmHg)")
Y軸のラベルのスケールを変更,25間隔✕0-3回表示(つまり0,25,50,75を表示させる).上下限を設定したいときは,ylim(0,100)とかすると,0から100までを表示してくれる.
> g<-g+scale_y_continuous(breaks=0:3*25)

凡例の表示を変更
> g<-g+scale_fill_hue(name="Task name",breaks=c("A", "B"),labels=c("Task A", "Task B"))
表のスタイルを変更(今回は背景を白,軸と枠をつけたやつ)
> g<-g+theme_bw()

出力
> plot(g)


ちなみに,文字の大きさの調整は以下を追加したうえで出力するとよい.legendは凡例の文字サイズ,axisは軸の文字サイズを編集可能.
> g<-g+theme(axis.text=element_text(size=18),axis.title=element_text(size=18),legend.title = element_text(size=16),legend.text = element_text(size=16))



コメント