合同会社DILIGENCEでは一緒に働く仲間を募集しています
ggplot2を使うと,作図がエクセルよりもとてもきれいに仕上がる.3ヶ月間に顧客が購入した額を性別別に棒グラフで出力してみる.
データはこんな感じ.
でもって早速Rで作図.
> library(ggplot2) #ggplot2パッケージの読み込み
> library(Rmisc) #Rmiscパッケージの読み込み これはデータの基本統計量(平均値等や標準偏差,標準誤差,信頼区間)を算出して図作成に使うため.
> dat<-read.delim("clipboard") #エクセルなんかの表計算ソフトからデータのコピー
> head(dat) #確認のためデータの頭部分だけ打ち出してみた
month sex purchase_amount
1 1st male 6159
2 1st male 6311
3 1st male 6258
4 1st male 6276
5 1st male 6228
6 1st male 6476
> mean_dat <- summarySE(dat, measurevar=c("purchase_amount"), groupvars=c("month","sex")) # Rmiscで基本統計量を計算
> mean_dat #purchase_amountは購入価格の平均値,sdは標準偏差,seは標準誤差,ciは信頼区間を示している.Nは各月の性別別の購入者の数
month sex N purchase_amount sd se ci
1 1st female 8 7313.375 187.7003 66.36209 156.9214
2 1st male 9 6277.333 140.6574 46.88580 108.1188
3 2nd female 9 7817.556 137.6400 45.88001 105.7995
4 2nd male 8 6755.250 136.9971 48.43580 114.5325
5 3rd female 12 8300.667 177.8520 51.34145 113.0018
6 3rd male 10 7236.200 199.9921 63.24306 143.0657
#ここから作図
> ggplot(mean_dat, aes(x=month, y=purchase_amount, fill=sex)) + #X軸に月,Y軸に購入額,凡例に性別を指定
+ geom_bar(position=position_dodge(), stat='identity')+ #棒を埋め込む
+ geom_errorbar(aes(ymin=purchase_amount-sd, ymax=purchase_amount+sd), colour="black", position=position_dodge(.9),size=0.5,width=.2)+ #エラーバーを埋め込む
+ expand_limits(y=c(0,9000)) + # Expand y range Y軸として表示する下限値を設定
+ scale_y_continuous(breaks=seq(0,9000,by=3000)) + # Y軸のラベリングの上限,下限,幅を設定
+ ylab("Purchase amount (Yen)") + #Y軸の説明
+ xlab("Month") #X軸の説明
これで出来上がり.
作図されたのはこんな図.デフォルトでこんな感じだから,もう少し編集すればもっときれいになる.