Rを使用して、2つの変数の間に線形関係をプロットしたいと思いますが、フィッティングされた線がデータの範囲内にのみ存在するようにしたいと思います。特定の範囲内に線を当てはめるR
たとえば、次のコードがある場合、xとyの値が1:10(デフォルトのパラメータで、この行はデータポイントの範囲を超えて拡張されます)の行のみが存在するようにします。
x <- 1:10
y <- 1:10
plot(x,y)
abline(lm(y~x))
Rを使用して、2つの変数の間に線形関係をプロットしたいと思いますが、フィッティングされた線がデータの範囲内にのみ存在するようにしたいと思います。特定の範囲内に線を当てはめるR
たとえば、次のコードがある場合、xとyの値が1:10(デフォルトのパラメータで、この行はデータポイントの範囲を超えて拡張されます)の行のみが存在するようにします。
x <- 1:10
y <- 1:10
plot(x,y)
abline(lm(y~x))
代わりのabline()
を用いて、(A)(B)は、x = 1、X = 10に対応するフィットy値を見つけるためにpredict.lm()
を使用し、次いで、(C)にlines()
を使用し、フィットモデルを保存2点の間に線を追加します。
f <- lm(y~x)
X <- c(1, 10)
Y <- predict(f, newdata=data.frame(x=X))
plot(x,y)
lines(x=X, y=Y)
予測を使用してこれを行うことができます。 (?を参照予測)lines
かとpredict
を使用することに加えて
x<-1:10
y<-1:10
plot(x,y)
new <- data.frame(x = seq(1, 5, 0.5))
lines(new$x, predict(lm(y~x), new))
segments
あなたもabline
でclip
機能を使用することができます。
x <- 1:10
y <- 1:10
plot(x,y)
clip(1,10, -100, 100)
abline(lm(y~x))
プロットリックスl ibraryは、このためだけにablineclip()
機能を持っています
x <- 1:10
y <- 1:10
plot(x,y)
ablineclip(lm(y~x),x1=1,x2=5)
代替segments
機能(DOC here)を使用することです。
あなたが線を推定したとし、a
と勾配b
の切片があるとします。したがって、フィット関数はy = a + bx
です。
ここで、xの行をx0
とx1
の間に表示したいとします。その後、次のコードは、あなたの行をプロット:
# inputs
a <- 0.5
b <- 2
x0 <- 1
x1 <- 5
# graph
plot(c(0,5), c(0,5), type = "n", xlab = "", ylab = "", bty='l')
segments(x0, a+b*x0, x1, a+b*x1)
は、単にあなたの選択のものとa, b, x0, x1
の値を置き換えます。 (与えられた回帰にフィットしていないもの)は数字の任意のペアのためのラインをプロットしたいこの質問に来た人、私のような人のために
、次のコードでは、何が必要です:
plot(c(0,5), c(0,5), type = "n", xlab = "", ylab = "", bty='l')
segments(x0, yo, x1, y1)
は、単にあなたの選択のものとx0, y0, x1, y1
の値を置き換えます。
+1、predict()でハックを使わずに、どのラインでも動作し、またabline()でも動作するためです。このようにして、例えば、プロットのマージンに延びるが、一方の側にのみ延びるアラインメントをトリミングすることもできる。右側に、左側にはない。 – pfifas