如何在 R 中定义 abline 线性回归的图形边界

Jam*_*mes 1 plot r linear-regression

我试图截断 abline 的末端,这实际上只是我的数据的线性回归。

fit1=lm(logy~logx)

> fit1

Call:
lm(formula = logy ~ logx)

Coefficients:
(Intercept)         logx  
     -5.339       -2.115 
Run Code Online (Sandbox Code Playgroud)

logx 被log10(x[1:365]转换的地方。logy 遵循相同的代码。当我用 绘图时abline(fit1,col="red"),我得到了我想要的线条,但线条超出了我最初设置的边界[1:365]。我已经尝试过了par=xpd,但这并没有将线路减少到我想要的限制。我玩过segments()无济于事。也许这是一个line()争论?

编辑这是新的解决方案:

#the following vectors x and y store our data that we want to plot
x<-(1:10)
y<-(10:1)
plot(x,y,type="l",log="xy")
#we want to do a linear regression on our log10 transformed data and add the line to the plot
logy=log10(y[3:8])
logx=log10(x[3:8])
fit1=lm(logy~logx)
#finally, we want the regression line to only seem like it applies over the range from 3 to 8
clip(3,8,8,3)
abline(fit1,col="red")
Run Code Online (Sandbox Code Playgroud)

这产生了一个图,其中一条线(现在,没有)在我们的 x 轴上延伸超过 3 到 8。我只希望回归线按照相同的斜率从 x=3 显示到 x=8。

Jea*_*lie 6

您可以clip在绘图区。我无法使用您的数据,因为您的示例不可重复,但这里有一个说明:

> plot(1,1,type='n',xlim=c(0,400), ylim=c(0,10))
> clip(1,365,0,10)
> abline(h=5,col='red')
Run Code Online (Sandbox Code Playgroud)

结果是在坐标框内有界的线x0=1,x1=365,y0=0,y1=10

在此处输入图片说明