データ分布を把握するのに便利なバイオリンプロットを簡単に補助プロットとして追加できるパッケージの紹介です。Rの基本的なgraphicsコマンドに適応できるので利用範囲は広いと思います。
バイオリンプロットを作成できる他のパッケージを参考までに紹介します。
・Rでウェブ解析:傾向が直感で理解できる!ggplot2でバイオリンプロットの作成
https://www.karada-good.net/analyticsr/r-6/
パッケージバージョンは0.4.0。実行コマンドはR version 4.2.2で確認しています。
パッケージのインストール
下記、コマンドを実行してください。
#パッケージのインストール
install.packages("vioplot")
実行コマンド
詳細はコメント、パッケージのヘルプを確認してください。
#パッケージのインストール
library("vioplot")
###データ例の作成#####
n <- 150
TestData <- data.frame(Data1 = rnorm(n),
Data2 = rnorm(n))
########
#例えば散布図に追加
#バイオリンプロット描写のスペースをlimオプションで指定
#スペースをnで指定
n <- 1.5
plot(TestData[, 1], TestData[, 2],
xlim = c(-max(TestData[, 1]) * n,
max(TestData[, 1]) * n),
ylim = c(-max(TestData[, 2]) * n,
max(TestData[, 2]) * n),
xlab = "TEST A", ylab = "TEST B",
pch = 19, col = "#0000FF60")
#バイオリンプロットを描写:vioplot
#水平にプロット:horizontalオプション;TRUE
#枠線の色:rectColオプション
#x軸方向に追加
vioplot(TestData[, 1], col = "tomato",
horizontal = TRUE, at = -max(TestData[, 2]) * n * 0.9,
add = TRUE, lty = 2, rectCol = "gray")
#y軸方向に追加
vioplot(TestData[, 2], col = "green",
horizontal = FALSE, at = -max(TestData[, 1]) * n * 0.9,
add = TRUE, lty = 2, rectCol = "gray")
#例えば箱ひげ図に追加
boxplot(TestData,
xlim = c(-0.5, 3.5),
ylim = c(-max(TestData[, 2]) * n,
max(TestData[, 2]) * n),
xlab = "TEST A", ylab = "TEST B",
col = c("tomato", "green"))
#バイオリンプロットを描写:vioplot
#水平にプロット:horizontalオプション;TRUE
#枠線の色:rectColオプション
#Data1方向に追加
vioplot(TestData[, 1], col = "tomato",
horizontal = FALSE, at = 0,
add = TRUE, lty = 2, rectCol = "gray")
#Data2方向に追加
vioplot(TestData[, 2], col = "green",
horizontal = FALSE, at = 3,
add = TRUE, lty = 2, rectCol = "gray")
出力例
・例えば散布図に追加

・例えば箱ひげ図に追加

少しでも、あなたのウェブや実験の解析が楽になりますように!!