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あるということを意味している.
それでもってRmiscパッケージを読み込む.
summarySE()という関数で平均値とSD,SE,CIを一気に計算
すばらしい.
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))
コメント