概要
- 棒グラフは 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”を指定する必要があります。
色をつける
棒グラフに色を塗るには aes
に fill
を指定します。
# 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")