準備

サンプルデータとして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.