箱ひげ図、ハーフバイオリンプロット、point plotの組み合わせでデータを表現する「Raincloud」を作成するパッケージの紹介です。
「ggplot2」パッケージのコマンドが利用できるので体裁の調整が簡単です。
パッケージバージョンは0.0.2。実行コマンドはR version 4.2.2で確認しています。
パッケージのインストール
下記、コマンドを実行してください。
#パッケージのインストール install.packages("ggrain")
実行コマンド
詳細はコメント、パッケージのヘルプを確認してください。
#パッケージの読み込み library("ggrain") ###データ例の作成##### #tidyverseパッケージがなければインストール if(!require("tidyverse", quietly = TRUE)){ install.packages("tidyverse");require("tidyverse") } set.seed(1234) n <- 100 TestData <- tibble(Group = sample(paste0("Group ", 1:2), n, replace = TRUE), Time_1 = rnorm(n) - 1.5, Time_2 = rnorm(n), Time_3 = rnorm(n) - 1.5,) %>% rowid_to_column("ID") %>% pivot_longer(!c(Group, ID), names_to = "Time", values_to = "Value") ######## ###Raincloudの作成:geom_rainコマンド##### #ggplot2と組み合わせて使用します ggplot(TestData, aes(x = Time, y = Value, fill = Group, color = Group)) + #geom_rainコマンド geom_rain( #boxplot,violinplotのプロット方法:raine.sideオプション #右:"r",左:"l",側面:"f",指標ごと:"f1x1",plotごと"f2x2" rain.side = "f", #pointplotを指標を基準に線でつなぐ:id.long.varオプション id.long.var = "ID", #pointplotの指標を基準に色を指定:covオプション #point.argsオプションで色を指定した場合無効 cov = "ID", ###ここから各プロットの体裁調整オプション##### #pointplot:point.argsオプション;listで指定 point.args = list(color = "red", size = 1.5, alpha = 0.45), #boxplot:boxplot.argsオプション;listで指定 boxplot.args = list(color = "black", #外れ値の表示 outlier.shape = TRUE), #violinplot:violin.argsオプション;listで指定 violin.args = list(color = "green", alpha = 0.75), #id.long.varオプションの線:line.argsオプション;listで指定 line.args = rlang::list2(color = "blue", size = 0.5, alpha = 0.3), ###ここまで各プロットの体裁調整オプション##### ###ここから各プロットの位置調整オプション##### #raine.sideオプションが"f1x1","f2x2"で一部無効# #pointplot:point.args.posオプション;listで指定 point.args.pos = list(position = position_jitter(width = 0.04, height = 0)), #boxplot:boxplot.args.posオプション;listで指定 boxplot.args.pos = list(width = 0.1, #「ggpp」パッケージのposition_dodgenudgeコマンドを利用 #各軸は0が基準,例では2Group, #x=c(Time1:Group1位置, Time2:Group2位置,...)と指定 position = ggpp::position_dodgenudge(x = c(-.13, -.13, -.10, .10, .13, .38))), #violinplot:violin.args.posオプション;listで指定 violin.args.pos = list(width = 0.4, #「ggplot2」パッケージのposition_nudgeコマンドを利用 position = position_nudge(x = c(rep(-.2, 256*2), rep(-.38, 256*2), rep(-.2, 256*2), rep(.2, 256*2), rep(.15, 256*2), rep(.45, 256*2)))), #id.long.varオプションの線:line.args.posオプション;listで指定 line.args.pos = list(position = position_jitter(width = 0.04, height = 0)), ###ここまで各プロットの位置調整オプション##### ) -> BaseRaincloud #確認 BaseRaincloud ###BaseRaincloudをggplot2コマンドで体裁を調整する##### BaseRaincloud + #boxplot,violinplotの塗色変更 scale_fill_manual(values = c("lightblue", "yellow")) + #凡例の非表示 guides(fill = "none", color = "none") + #テーマを適用 theme_dark() + #軸の反転 coord_flip() ########
出力例
・geom_rainコマンド
・ggplot2コマンドで体裁を調整する
少しでも、あなたの解析が楽になりますように!!