Rで解析:補助プロットにバイオリンプロットはいかがでしょうか「vioplot」パッケージ

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

データ分布を把握するのに便利なバイオリンプロットを簡単に補助プロットとして追加できるパッケージの紹介です。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))
########

#&#20363;&#12360;&#12400;&#25955;&#24067;&#22259;&#12395;&#36861;&#21152;
#&#12496;&#12452;&#12458;&#12522;&#12531;&#12503;&#12525;&#12483;&#12488;&#25551;&#20889;&#12398;&#12473;&#12506;&#12540;&#12473;&#12434;lim&#12458;&#12503;&#12471;&#12519;&#12531;&#12391;&#25351;&#23450;
#&#12473;&#12506;&#12540;&#12473;&#12434;n&#12391;&#25351;&#23450;
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")

#&#12496;&#12452;&#12458;&#12522;&#12531;&#12503;&#12525;&#12483;&#12488;&#12434;&#25551;&#20889;:vioplot
#&#27700;&#24179;&#12395;&#12503;&#12525;&#12483;&#12488;:horizontal&#12458;&#12503;&#12471;&#12519;&#12531;;TRUE
#&#26528;&#32218;&#12398;&#33394;:rectCol&#12458;&#12503;&#12471;&#12519;&#12531;
#x&#36600;&#26041;&#21521;&#12395;&#36861;&#21152;
vioplot(TestData[, 1], col = "tomato",
        horizontal = TRUE, at = -max(TestData[, 2]) * n * 0.9,
        add = TRUE, lty = 2, rectCol = "gray")
#y&#36600;&#26041;&#21521;&#12395;&#36861;&#21152;
vioplot(TestData[, 2], col = "green",
        horizontal = FALSE, at = -max(TestData[, 1]) * n * 0.9,
        add = TRUE, lty = 2, rectCol = "gray")

#&#20363;&#12360;&#12400;&#31665;&#12402;&#12370;&#22259;&#12395;&#36861;&#21152;
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"))

#&#12496;&#12452;&#12458;&#12522;&#12531;&#12503;&#12525;&#12483;&#12488;&#12434;&#25551;&#20889;:vioplot
#&#27700;&#24179;&#12395;&#12503;&#12525;&#12483;&#12488;:horizontal&#12458;&#12503;&#12471;&#12519;&#12531;;TRUE
#&#26528;&#32218;&#12398;&#33394;:rectCol&#12458;&#12503;&#12471;&#12519;&#12531;
#Data1&#26041;&#21521;&#12395;&#36861;&#21152;
vioplot(TestData[, 1], col = "tomato",
        horizontal = FALSE, at = 0,
        add = TRUE, lty = 2, rectCol = "gray")
#Data2&#26041;&#21521;&#12395;&#36861;&#21152;
vioplot(TestData[, 2], col = "green",
        horizontal = FALSE, at = 3,
        add = TRUE, lty = 2, rectCol = "gray")

出力例

・例えば散布図に追加

scatterVio

・例えば箱ひげ図に追加

BoxPlotVio

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

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