「ggplot2」パッケージのプロットに有意差バーを追加するパッケージの紹介です。出力例を確認してください。
パッケージバージョンは0.6.3。 実行コマンドはwindows 11のR version 4.1.2で動作を確認しています。
パッケージのインストール
下記コマンドを実行してください。
#パッケージのインストール
install.packages("ggsignif")
実行コマンド
詳細はコマンド、パッケージのヘルプを確認してください。
#パッケージの読み込み
library("ggsignif")
#ggplot2を利用するためにtidyverseパッケージを読み込み
#tidyverseパッケージがなければインストール
if(!require("tidyverse", quietly = TRUE)){
install.packages("tidyverse");require("tidyverse")
}
###データ例の作成#####
TestData <- data.frame("Group" = c(rep("Group1", 50), sample(paste0("Group", 2:3), 50, replace = TRUE)),
"Data1" = c(sample(c(1:8), 10, replace = TRUE),
sample(2:8, 40, replace = TRUE),
sample(4:7, 50, replace = TRUE)))
########
###プロット例の作成#####
#箱ひげ
BoxPlot <- ggplot(TestData, aes(x = Group, y = Data1)) +
geom_boxplot(fill = "lightblue")
#棒グラフ
HistPlot <- ggplot(TestData, aes(x = Group, y = Data1, group = Group)) +
geom_histogram(aes(fill = Group), stat = "identity")
########
#プロットに有意差表示:geom_signifコマンド
#変数を指定:comparisonsオプション;listで指定
#2変数の検定手法を設定:testオプション;t.test,wilcox.testなどが指定可能
#欠損値を除去して計算:na.rmオプション
#検定結果をアスタリスクで表示:map_signif_levelオプション;"***"=0.001,"**"=0.01,"*"=0.05
###プロット#####
BoxPlot +
geom_signif(comparisons = list(c("Group1", "Group2")),
test = "t.test", na.rm = FALSE, map_signif_level = TRUE, col = "red")
#検定を利用せずに手動で有意差表示を追加
#statオプション:"identity"
###表示位置はdata.frameで指定;x,xend,y,annotation等で指定####
###表示位置データの準備#####
PlotPoint <- data.frame(x = c(0.8, 1.8, 2.8, 0.8),
y = c(8.2, 7.5, 2.5, 8.7),
xend = c(1.2, 2.2, 3.2, 3.2),
yend = c(8.2, 7.5, 2.5, 8.7),
annotation = c("***", "0.05", "**", "NS"))
###プロット#####
BoxPlot +
geom_signif(data = PlotPoint,
aes(x = x, xend = xend,
y = y, yend = yend,
annotation = annotation),
stat = "identity", col = "red")
出力例
・プロットに有意差表示:geom_signifコマンド

・検定を利用せずに手動で有意差表示を追加

少しでも、あなたの解析が楽になりますように!!