棒の長さで数量の大小を表す、棒グラフの作成コマンド「geom_col」の紹介です。数量は最大値、最小値、平均値、中央値などがあります。ですので、場合によっては元データから計算する必要がありますので注意が必要です。
また、エラーバーとして標準誤差(standard error)を使用することがあります。「ggplot2」パッケージには平均、平均+標準誤差、平均-標準誤差を算出する「mean_se」コマンドが収録されているので利用してはいかがでしょうか。
「ggplot2」のインストールと読み込み
「tidyverse」をインストールして「ggplot2」パッケージを利用するのが便利です。
# パッケージのインストール install.packages("tidyverse") # パッケージの読み込み library("tidyverse")
対象データ
下記のような、データが対象データです。「dplyr::group_by」コマンドでグループ化、「dplyr::summarise_all」コマンドで平均値、標準偏差を求めています。
## 対象データ # 一変量_X or Y:No # 二変量_X and Y:Yes # 文字:Yes # 数字:Yes # 例 set.seed(1234) Col_data <- data.frame(x = sample(LETTERS[c(1, 5, 8)], size = 100, replace = TRUE), y = sample(c(1, 3, 6), size = 100, replace = TRUE), Group = sample(LETTERS[2:3], size = 100, replace = TRUE)) %>% group_by(Group, x) %>% summarise_all(list(mean = mean, sd = sd, # 平均と標準誤差算出に便利な「mean_se」コマンド se = ggplot2::mean_se)) # 以下「mean_se」コマンドと同じ #summarise_all(list(mean = mean, sd = sd, # 標準誤差を計算 # se = function(.) sd(.)/sqrt(length(.)))) %>% # 平均±標準誤差を計算 # mutate(ymin = mean - se, # ymax = mean + se)
基本的なプロット
ggplot(Col_data, aes(x = x, y = mean)) + geom_col()
体裁の設定例
枠線色、塗色、積み上げ・グループ毎に横並びなどの表現方法の設定例です。
## 枠色の設定:colorオプション # 各項目のみの塗分けはGroupオプションを使用しない ggplot(Col_data, aes(x = x, y = mean, color = Group, Group = Group)) + geom_col() # 好みの色はscale_color_manualコマンドを使用する ggplot(Col_data, aes(x = x, y = mean, color = Group, Group = Group)) + geom_col(linewidth = rep(c(1, 6), time = 3)) + scale_color_manual(values = c("C" = "red", "B" = "yellow")) ## 塗色の設定:fillオプション # 各項目のみの塗分けはGroupオプションを使用しない ggplot(Col_data, aes(x = x, y = mean, fill = Group, Group = Group))+ geom_col() # 好みの色はscale_fill_manualコマンドを使用する ggplot(Col_data, aes(x = x, y = mean, fill = Group, Group = Group))+ geom_col() + scale_fill_manual(values = c("C" = "blue", "B" = "yellow")) ## 表現方法:positionオプション # "dodge","dodge2","stack" ggplot(Col_data, aes(x = x, y = mean, fill = Group)) + geom_col(position = position_stack(reverse = TRUE)) + scale_fill_manual(values = c("C" = "blue", "B" = "red")) ggplot(Col_data, aes(x = x, y = mean, fill = Group)) + geom_col(position = "dodge") + scale_fill_manual(values = c("C" = "blue", "B" = "red")) ggplot(Col_data, aes(x = x, y = mean, fill = Group)) + geom_col(position = "dodge2") + scale_fill_manual(values = c("C" = "blue", "B" = "red")) ggplot(Col_data, aes(x = x, y = mean, fill = Group)) + geom_col(position = "stack") + scale_fill_manual(values = c("C" = "blue", "B" = "red")) ## Y軸の値で参考線を追加する # geom_hlineコマンドを追加する ggplot(Col_data, aes(x = x, y = mean, fill = Group)) + geom_col() + geom_hline(color = "red", linewidth = mean(Col_data$mean), yintercept = 3, show.legend = NA)
エラーバーを付けるいくつかの方法
## エラーバーを付けるいくつかの方法 # グループ分類時のポイントはposition_XXXXXコマンドを利用する # geom_pointrangeコマンド ggplot(Col_data, aes(x = x, y = mean, fill = Group)) + geom_col(position = "dodge2") + geom_pointrange(aes(ymin = mean - sd, ymax = mean + sd), position = position_dodge2(width = 0.9), colour = "red") # geom_errorbarコマンド ggplot(Col_data, aes(x = x, y = mean, fill = Group)) + geom_col(position = "dodge2") + geom_errorbar(aes(ymin = se$ymin, ymax = se$ymax), position = position_dodge2(width = 0.9, padding = 0.5), colour = "red") # geom_crossbarコマンド ggplot(Col_data, aes(x = x, y = mean, fill = Group)) + geom_col(position = position_dodge(width = 0.9)) + geom_crossbar(aes(ymin = se$ymin, ymax = se$ymax), position = position_dodge2(padding = 1.2), fatten = 2.5, colour = "yellow") # geom_linerangeコマンド ggplot(Col_data, aes(x = x, y = mean, fill = Group)) + geom_col(position = position_dodge(width = 0.9)) + geom_linerange(aes(ymin = mean - sd, ymax = mean + sd), position = position_dodge2(width = 0.9), colour = "red")
作図例
・表現方法:positionオプション:geom_col(position = “dodge2”)
・エラーバーを付けるいくつかの方法:geom_errorbarコマンド
・その他、コマンド実行で作成できる棒グラフ
少しでも、あなたの解析に役に立ちますように!