使用R,我想绘制两个变量之间的线性关系,但我希望拟合线仅存在于数据范围内.
例如,如果我有以下代码,我希望该行仅存在于x和y值1:10(默认参数此行超出数据点范围).
x <- 1:10
y <- 1:10
plot(x,y)
abline(lm(y~x))
Run Code Online (Sandbox Code Playgroud)
Gre*_*now 19
除了使用predict
具有lines
或者segments
你也可以使用clip
函数abline
:
x <- 1:10
y <- 1:10
plot(x,y)
clip(1,10, -100, 100)
abline(lm(y~x))
Run Code Online (Sandbox Code Playgroud)
Jos*_*ien 16
代替使用的abline()
,(a)中保存的拟合模型,(b)中使用predict.lm()
,以找到对应于x = 1和x = 10,且然后(c)中使用的拟合y值lines()
添加的两个点之间的线:
f <- lm(y~x)
X <- c(1, 10)
Y <- predict(f, newdata=data.frame(x=X))
plot(x,y)
lines(x=X, y=Y)
Run Code Online (Sandbox Code Playgroud)
您可以使用预测来完成此操作.
您可以预测x的特定值(参见?预测)
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))
Run Code Online (Sandbox Code Playgroud)