R で並べて箱ひげ図を作成する

胡金庫 2023年1月30日
  1. R で par 関数を使用して並べて箱ひげ図を作成する
  2. R で grid.arrange 関数を使用して並べて箱ひげ図を作成する
R で並べて箱ひげ図を作成する

この記事では、R で箱ひげ図を並べて作成する方法を紹介します。

R で par 関数を使用して並べて箱ひげ図を作成する

par 関数を使用して、グラフィカルパラメータを設定できます。引数なしまたは no.readonly = TRUE を指定せずに関数を呼び出すと、すべてのグラフィカルパラメータが取得されます。この場合、mfrow パラメーターを使用して、並べた箱ひげ図を作成します。mfrowc(nr, nc) ベクトルで渡され、後続のプロットは nr-by-nc 配列として描画されます。次のサンプルコードは、InsectSprays データセットから 2つの箱ひげ図を作成します。ここで、count 列と spray 列はそれに応じてプロットされます。boxplot 関数の詳細なレビューはこの記事の範囲を超えていますが、ボックス本体の色を指定するには col 引数が必要です。最後の par(mfrow=c(1,1)) 関数呼び出しを使用して、レイアウトをデフォルト設定にリセットしていることに注意してください。

par(mfrow=c(1,2))
boxplot(count ~ spray, data = InsectSprays, col = "pink")
boxplot(count ~ spray, data = InsectSprays, col = "yellow")
par(mfrow=c(1,1))

並べて箱ひげ図 r1

R で grid.arrange 関数を使用して並べて箱ひげ図を作成する

または、gridExtra パッケージの grid.arrange 関数を使用することもできます。grid.arrangepar 関数と同様に動作します。それでも、複数のプロット、特に ggplot オブジェクトを使用すると、より柔軟で直感的になります。grid.arrange は、開始引数として可変長の ggplot オブジェクトを取ります。その後、オプションの引数、つまり、プロット用に作成する必要のある列の数を示す ncol パラメーターを指定できます。次のコードスニペットは、2つのボックスプロットを並べて描画します。

library(ggplot2)
library(gridExtra)

plot1 <- ggplot(InsectSprays, aes(x = spray, y = count)) + geom_boxplot(fill = "pink")
plot2 <- ggplot(InsectSprays, aes(x = spray, y = count)) + geom_boxplot(fill = "yellow")
grid.arrange(plot1, plot2, ncol = 2)

並べて箱ひげ図 r2

grid.arrange は、nrow パラメータと ncol パラメータの両方を使用して指定された 2 次元の分割ウィンドウを作成することもできます。ggplot オブジェクトを組み合わせてリストにし、grobs = list(...) 引数の形式で渡すことができることに注意してください。次の例では、2 行 2 列の行列スタイルで 4つの箱ひげ図を出力します。

library(ggplot2)
library(gridExtra)

plot1 <- ggplot(InsectSprays, aes(x = spray, y = count)) + geom_boxplot(fill = "pink")
plot2 <- ggplot(InsectSprays, aes(x = spray, y = count)) + geom_boxplot(fill = "yellow")
plot3 <- ggplot(InsectSprays, aes(x = spray, y = count)) + geom_boxplot(fill = "orange")
plot4 <- ggplot(InsectSprays, aes(x = spray, y = count)) + geom_boxplot(fill = "cyan")
grid.arrange(plot1, plot2, plot3, plot4, nrow = 2, ncol = 2)

並べて箱ひげ図 r3

grid.arrange 関数のもう 1つの便利なパラメーターは、layout_matrix です。これは、結合されたベクトルで指定されたカスタム構造に各プロットを配置します。この例では、非対称ウィンドウ構造で構築された 3つの異なるプロットオブジェクトを定義しています。上部に 2つのプロット、下部に 1つのプロットです。rbind のベクトルの数はウィンドウの行に対応し、各オブジェクトの要素は、指定されたウィンドウの行を分割する部分の数を指定します。一方、番号は同じ順序で引数プロットに対応しています。2 番目の行のすべての分割ウィンドウが 3 番目のプロットで占められている場合、2 番目のベクトルのすべての要素の値は-3 である必要があります。

library(ggplot2)
library(gridExtra)

plot1 <- ggplot(InsectSprays, aes(x = spray, y = count)) + geom_boxplot(fill = "pink")
plot2 <- ggplot(mtcars, aes(x = mpg)) + geom_histogram(fill = "yellow", bins = 30)
plot3 <- ggplot(mtcars, aes(x = wt, y = mpg)) + geom_point(fill = "orange")

grid.arrange(plot1, plot2, plot3, widths = c(2, 2, 1),
    layout_matrix = rbind(c(1, 2, 2), c(3, 3, 3)))

並べて箱ひげ図 r4

著者: 胡金庫
胡金庫 avatar 胡金庫 avatar

DelftStack.comの創設者です。Jinku はロボティクスと自動車産業で8年以上働いています。自動テスト、リモートサーバーからのデータ収集、耐久テストからのレポート作成が必要となったとき、彼はコーディングスキルを磨きました。彼は電気/電子工学のバックグラウンドを持っていますが、組み込みエレクトロニクス、組み込みプログラミング、フロントエンド/バックエンドプログラミングへの関心を広げています。

LinkedIn Facebook

関連記事 - R Plot