プログラミング言語Rを図で分かりやすく紹介します

R図鑑

【R】棒グラフの作り方

2021年4月29日

概要

  • 棒グラフは ggplot + geom_bar
  • x軸にはカテゴリの情報を指定する

基本的な考え方

棒グラフを作る時は ggplot + geom_bar を使います。ggplotでどの項目を軸や色の指定に使うかを設定し、geom_bar ではどんな棒グラフを作るか設定します。

具体例

いくつかの具体例をコードと出力結果と一緒に紹介したいと思います。

ここでは平均値などの代表値を可視化する場合を考えます。先に各グループの平均値を計算したデータフレーム(表)を用意している状態だと仮定して説明していきます。

基本の棒グラフ

まずは基本的な棒グラフを書くコードとその出力結果を紹介します。

# ggplot2パッケージの呼び出し
library(ggplot2)
# 作図用デモデータの作成
data4plot <- data.frame(Group = c("A", "B", "C"), Value = c(10, 15, 25))
# 作図
ggplot(data = data4plot, aes(x = Group, y = Value)) + 
 geom_bar(stat = "identity")

x軸にグループやカテゴリの情報、y軸に表示したい代表値などの情報を指定します。また、今回のように代表値を可視化する時はgeom_barの中でstat = “identity”を指定する必要があります。

色をつける

棒グラフに色を塗るには aesfill を指定します。

# ggplot2パッケージの呼び出し
library(ggplot2)
# デモデータの作成
data4plot <- data.frame(Group = c("A", "B", "C"), Value = c(10, 15, 25))
# 作図
ggplot(data = data4plot, aes(x = Group, y = Value, fill = Group)) + 
  geom_bar(stat = "identity")パッケージ

fill は塗りつぶしの色を指定するパラメータです。ポイントは塗りつぶす色を指定するわけではなく、どの項目で色を塗り分けるかを指定することです。

積み重ねる

1つのx軸の値に対して1つのy軸の値を持つデータの場合は普通の棒グラフが描けますが、1つのx値に対して複数のy値を持つ場合は積み重ね棒グラフが描けます。

積み重ねた項目ごとに色を塗ると見やすいのでfill で指定する項目を 積み重ねたい項目にすると良いかもしれません。

# ggplot2パッケージの呼び出し
library(ggplot2)
# デモデータ作成
data4plot <- data.frame(Group = c("A", "A","B", "B","C", "C"),
             Value = c(5, 5, 7, 8, 15, 10),
             Gender = rep(c("Male", "Female"), 3))
# 作図
ggplot(data = data4plot, aes(x = Group, y = Value, fill = Gender)) + 
  geom_bar(stat = "identity")

エラーバーを付ける

エラーバーを付けるには、geom_bar に加えて geom_errorbarを記述します。ただし、基本的にはエラーバーで表示する誤差値をあらかじめ計算してデータフレームに誤差の列を用意しておく方が良いです。

# ggplot2パッケージ呼び出し
library(ggplot2)
# デモデータ作成
data4plot <- data.frame(Group = c("A", "B", "C"),
             Value = c(10, 15, 25),
             Error = c(2, 1.5, 3))
# 作図
ggplot(data = data4plot, aes(x = Group, y = Value)) + 
  geom_errorbar(aes(ymin = Value -Error, ymax = Value + Error), width = .3) + 
  geom_bar(stat = "identity") 

  • B!