Rの関数:ablineclip {plotrix}

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

関数 ablineclip とは

ablineclip は、Rの標準関数である abline を拡張したもので、描画する直線の範囲を限定(クリッピング)できる関数です。

通常の abline は指定した直線がプロットエリアの端から端まで描画されますが、ablineclip を使用すると、引数 x1, x2(X軸方向)や y1, y2(Y軸方向)で指定した範囲内にのみ直線を表示させることができます。

内部的な仕組みとしては、Rの clip 関数を利用して一時的に描画領域を制限し、その範囲内に abline で直線を描いた後、元の描画領域(par("usr"))を復元するという処理を行っています。

関数 ablineclip の活用シーン

  1. 回帰直線の表示範囲の制限

    • 散布図において、データが存在する範囲内だけに回帰直線を記述したい場合(データの範囲外まで線を伸ばしたくない時)。
  2. 特定区間の強調

    • グラフ内の一部分にのみ、補助線(水平線や垂直線)を引きたい場合。
  3. 視覚的な整理

    • 複数の直線を描く際、それらが互いに交差して見づらくなるのを防ぐため、必要な範囲にのみ限定して描画する場合。

関数 ablineclip の引数

library(plotrix)
args(ablineclip)
function (a = NULL, b = NULL, h = NULL, v = NULL, reg = NULL, 
    coef = NULL, untf = FALSE, x1 = NULL, x2 = NULL, y1 = NULL, 
    y2 = NULL, ...) 
NULL
  • a, b

    • 直線の切片 (a) と傾き (b)。
  • h

    • 水平線を引きたい場合のy軸の値。
  • v

    • 垂直線を引きたい場合のx軸の値。
  • reg

    • 回帰オブジェクト(lm 関数の戻り値など)。利用しますと切片と傾きが自動で計算されます。
  • coef

    • 切片と傾きを含むベクトル。
  • untf

    • 論理値。座標が対数変換されている場合に、元のスケールで直線を引くか否か。
  • x1, x2

    • 直線を表示するX軸の開始点 (x1) と終了点 (x2)。
  • y1, y2

    • 直線を表示するY軸の開始点 (y1) と終了点 (y2)。
  • ...

    • col(色)、lty(線種)、lwd(線の太さ)などの一般的なグラフィックスパラメータ。

サンプルコード

# データの準備
x <- rnorm(100)
y <- x + rnorm(100)

# 回帰分析の実行
lmfit <- lm(y ~ x)

# 散布図の描画(x軸の範囲を -3.5 から 3.5 に設定)
plot(x, y, xlim = c(-3.5, 3.5))

# 1. 回帰直線を範囲指定して描画
# x軸の -2 から 2 の範囲にのみ点線(lty=2)で回帰直線を引く
ablineclip(lmfit, x1 = -2, x2 = 2, lty = 2)

# 2. 水平線を範囲指定して描画
# y=0 の位置に、x軸の -2 から 2 の範囲で赤い破線(lty=3)を引く
ablineclip(h = 0, x1 = -2, x2 = 2, lty = 3, col = "red")

# 3. 垂直線を範囲指定して描画
# x=0 の位置に、y軸の -2.5 から 1.5 の範囲で緑の一点鎖線(lty=4)を引く
ablineclip(v = 0, y1 = -2.5, y2 = 1.5, lty = 4, col = "green")
Figure 1

以上です。