1
/
5

R(ggplot2パッケージ)できれいな棒グラフを作図してみる(S. Kubota)

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軸の説明

これで出来上がり.

作図されたのはこんな図.デフォルトでこんな感じだから,もう少し編集すればもっときれいになる.



合同会社DILIGENCE's job postings

Weekly ranking

Show other rankings
Like 窪田昂's Story
Let 窪田昂's company know you're interested in their content