サンプルデータとしてggplot2パッケージに同梱されている「mtcars」を使います。
# ライブラリの読み込み
library(ggplot2)
library(dplyr)
# データの確認
head(mtcars)
## mpg cyl disp hp drat wt qsec vs am gear carb
## Mazda RX4 21.0 6 160 110 3.90 2.620 16.46 0 1 4 4
## Mazda RX4 Wag 21.0 6 160 110 3.90 2.875 17.02 0 1 4 4
## Datsun 710 22.8 4 108 93 3.85 2.320 18.61 1 1 4 1
## Hornet 4 Drive 21.4 6 258 110 3.08 3.215 19.44 1 0 3 1
## Hornet Sportabout 18.7 8 360 175 3.15 3.440 17.02 0 0 3 2
## Valiant 18.1 6 225 105 2.76 3.460 20.22 1 0 3 1
ここではcylごとのwtの平均値を棒グラフにします。なお、stat = “identity”はx軸が離散値であることを明示しています。
# clyごとのwtの平均値を取得
data <- group_by(mtcars, cyl) %>%
summarise(mean_wt = mean(wt))
### 棒グラフの作成
ggplot(data, aes(x = as.factor(cyl), y = mean_wt)) + # x軸でグループを指定する
geom_bar(stat = "identity")
棒をグループ化する方法について解説します。ここではclyとamごとのwtの平均値をグラフにする例を用いて解説します。分類に使う変数をggplot()関数のfillに指定することでグループ化して描写できます。この際、factor()関数を使ってカテゴリカル変数に変換する必要があります。また、geom_bar()関数の中でのposition = “dodge”の指定は、棒を水平方向に分けて描画するためのものです。
# clyとamごとのwtの平均値を取得
data <- group_by(mtcars, cyl, am) %>%
summarise(mean_wt = mean(wt))
### 棒グラフの作成
ggplot(data, aes(as.factor(cyl), y = mean_wt, fill = as.factor(am))) +
geom_bar(stat = "identity", position = "dodge")
積み上げ棒グラフの作成は、geom_bar()関数の中でposition = “dodge”を指定しなければ作成できます。
# clyとamごとのwtの平均値を取得
data <- group_by(mtcars, cyl, am) %>%
summarise(mean_wt = mean(wt))
### 棒グラフの作成
ggplot(data, aes(as.factor(cyl), y = mean_wt, fill = as.factor(am))) +
geom_bar(stat = "identity")
「データから価値を創造する」一般社団法人データマーケティングラボラトリー
Copyright© DML All Rights Reserved.