Rで解析:ggplot2のプロットに有意差バーを追加!「ggsignifr」パッケージ

Rの解析に役に立つ記事
スポンサーリンク

「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)))
########

###&#12503;&#12525;&#12483;&#12488;&#20363;&#12398;&#20316;&#25104;#####
#&#31665;&#12402;&#12370;
BoxPlot <- ggplot(TestData, aes(x = Group, y = Data1)) +
  geom_boxplot(fill = "lightblue")
#&#26834;&#12464;&#12521;&#12501;
HistPlot <- ggplot(TestData, aes(x = Group, y = Data1, group = Group)) +
  geom_histogram(aes(fill = Group), stat = "identity") 
########

#&#12503;&#12525;&#12483;&#12488;&#12395;&#26377;&#24847;&#24046;&#34920;&#31034;:geom_signif&#12467;&#12510;&#12531;&#12489;
#&#22793;&#25968;&#12434;&#25351;&#23450;:comparisons&#12458;&#12503;&#12471;&#12519;&#12531;;list&#12391;&#25351;&#23450;
#2&#22793;&#25968;&#12398;&#26908;&#23450;&#25163;&#27861;&#12434;&#35373;&#23450;:test&#12458;&#12503;&#12471;&#12519;&#12531;;t.test,wilcox.test&#12394;&#12393;&#12364;&#25351;&#23450;&#21487;&#33021;
#&#27424;&#25613;&#20516;&#12434;&#38500;&#21435;&#12375;&#12390;&#35336;&#31639;:na.rm&#12458;&#12503;&#12471;&#12519;&#12531;
#&#26908;&#23450;&#32080;&#26524;&#12434;&#12450;&#12473;&#12479;&#12522;&#12473;&#12463;&#12391;&#34920;&#31034;:map_signif_level&#12458;&#12503;&#12471;&#12519;&#12531;;"***"=0.001,"**"=0.01,"*"=0.05
###&#12503;&#12525;&#12483;&#12488;#####
BoxPlot +
  geom_signif(comparisons = list(c("Group1", "Group2")),
              test = "t.test", na.rm = FALSE, map_signif_level = TRUE, col = "red")

#&#26908;&#23450;&#12434;&#21033;&#29992;&#12379;&#12378;&#12395;&#25163;&#21205;&#12391;&#26377;&#24847;&#24046;&#34920;&#31034;&#12434;&#36861;&#21152;
#stat&#12458;&#12503;&#12471;&#12519;&#12531;:"identity"
###&#34920;&#31034;&#20301;&#32622;&#12399;data.frame&#12391;&#25351;&#23450;;x,xend,y,annotation&#31561;&#12391;&#25351;&#23450;####
###&#34920;&#31034;&#20301;&#32622;&#12487;&#12540;&#12479;&#12398;&#28310;&#20633;#####
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"))
###&#12503;&#12525;&#12483;&#12488;#####
BoxPlot +
  geom_signif(data = PlotPoint, 
              aes(x = x, xend = xend,
                  y = y, yend = yend,
                  annotation = annotation),
              stat = "identity", col = "red")

出力例

・プロットに有意差表示:geom_signifコマンド

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


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

タイトルとURLをコピーしました