Rの関数:addtable2plot {plotrix}

Rの関数から addtable2plot {plotrix} を確認します。

関数 addtable2plot とは

addtable2plot は、既存のグラフ上の任意の位置にデータフレームや行列の形式でテーブル(表)を挿入するための関数です。

通常、グラフ内の数値情報は凡例(legend)として記載されますが、複数の変数や具体的な数値群を整理して提示したい場合には、表形式での挿入が適しています。

当該の関数は、指定された座標を基準として、テキストの幅(strwidth)や高さ(strheight)を自動的に計算し、セルの枠線や背景色を伴った表を描画します。

内部的な挙動として、対数スケールの設定状況を確認しつつ、描画領域外への描画を許可する設定(xpd=TRUE)を一時的に適用することで、柔軟なレイアウトを実現しています。

また、単一の背景色だけでなく、各セルに対して個別の背景色を指定することも可能であり、ヒートマップのような視覚効果を表に付与することもできます。

関数 addtable2plot の活用シーン

  • 要約統計量の提示

    • 散布図や棒グラフの余白に、平均値、標準偏差、サンプルサイズなどの統計情報を一覧表として添えたい場合。
  • グラフと数値の統合

    • 視覚的な傾向を示すグラフと、その基礎となる具体的な数値を同一の図内に収め、資料の完結性を高めたい場合。
  • 条件分岐の明示

    • 実験条件やパラメータの設定値を表として挿入し、図が示す内容の文脈を補足したい場合。

関数 addtable2plot の引数

library(plotrix)
args(addtable2plot)
function (x, y = NULL, table, lwd = par("lwd"), bty = "n", bg = par("bg"), 
    cex = 1, xjust = 0, yjust = 1, xpad = 0.1, ypad = 0.5, box.col = par("fg"), 
    text.col = par("fg"), display.colnames = TRUE, display.rownames = FALSE, 
    hlines = FALSE, vlines = FALSE, title = NULL) 
NULL
  • x, y

    • 表を配置する座標を指定します。x に “topleft” や “bottomright” などの位置指定キーワードを渡すことも可能です。
  • table

    • 挿入するデータフレームまたは行列を指定します。
  • lwd

    • 表の枠線や区切り線の太さを指定します。
  • bty

    • 表全体の囲み枠のタイプを指定します。“o” で枠を表示し、“n”(初期値)で非表示とします。
  • bg

    • セルの背景色を指定します。行列形式で指定することで、セルごとに異なる色を塗布できます。
  • cex

    • 文字の拡大率を指定します。
  • xjust, yjust

    • 指定した座標に対する表の水平・垂直方向の配置調整を指定します。
  • xpad, ypad

    • セル内の文字と枠線との間の余白を調整します。
  • box.col

    • 枠線の色を指定します。
  • text.col

    • 文字の色を指定します。
  • display.colnames, display.rownames

    • 列名や行名を表示するかどうかを論理値で制御します。
  • hlines, vlines

    • セル間に水平線や垂直線を描画するかどうかを指定します。
  • title

    • 表の上部に表示するタイトル文字列を指定します。

サンプルコード

# 1. 解析用データの生成
x <- rnorm(50)
y <- 2.0 * x + rnorm(50, sd = 0.5)
fit <- lm(y ~ x)
res <- summary(fit)$coefficients

# 2. 統計表の準備
# 解析結果を丸め処理し、表示用のデータフレームを構築します
res_df <- as.data.frame(round(res, 3))
colnames(res_df) <- c("推定値", "標準誤差", "t値", "p値")

# 3. 背景色行列の作成(条件付き書式の定義)
# すべてのセルを白に初期化した後、P値が0.01未満の行を強調します
bg_matrix <- matrix("white", nrow = nrow(res_df), ncol = ncol(res_df))
bg_matrix[res_df[, 4] < 0.01, ] <- "#FFE4E1" # 有意な行を薄い赤色で着色

# 4. 特定の統計量(例:t値の列)を別の色で強調することも可能です
bg_matrix[, 3] <- "#E0FFFF"

# 5. グラフの描画と表の追加
# メインタイトルを設定して散布図を描画します
plot(x, y, pch = 21, bg = "lightblue", main = "回帰分析による相関の可視化")
abline(fit, col = "red", lwd = 2)

# 6. 表を右下の位置へ挿入します
addtable2plot(
  x = "bottomright",
  table = res_df,
  bty = "o",
  display.rownames = TRUE,
  hlines = TRUE,
  vlines = TRUE,
  bg = bg_matrix,
  title = "【統計解析結果一覧】",
  cex = 0.9
)
Figure 1

以上です。