如何在R中用散点图创建线性回归线?

9

我尝试使用abline函数在散点图上创建线性回归线。

x= c (1.0325477, 0.6746901, 1.0845737, 1.1123872, 1.1060822, 0.8595918, 0.8512941, 1.0148842, 1.0722369, 0.9019220 , 0.8809147, 1.0358256, 0.9903858, 1.0715174 , 1.1034405, 1.0143966,0.9802365, 0.7177169 , 0.9190783, 0.8408701 ) 
y= c (0.8550177, 0.8352162 ,1.0236998, 1.1071665, 0.6768144, 0.8449983 ,0.7616483, 0.8259199, 1.1539598, 1.4125006, 1.0511816, 0.9366184, 1.4101268, 1.2937913, 1.4147219 ,1.2943105 ,0.7859749, 0.6689330, 0.6940164, 0.8093392)
plot(x,y) 
abline(lm(y ~ x))
Error in int_abline(a = a, b = b, h = h, v = v, untf = untf, ...) : 
 plot.new has not been called yet

有任何建议请提出。


2
如果在plotabline之间关闭了绘图窗口(或设备),就会发生这种情况。 - Vincent Zoonekynd
3个回答

9

对我和其他人都有效。尝试关闭并重新打开R。

如果仍有问题,可以尝试:

# put x and y in a data frame
dat<-data.frame(x=x,y=y)
attach(dat)
plot(x,y) 
abline(lm(y ~ x))

许多经验丰富的 R 用户不推荐使用 attach(),而是建议在可能的情况下使用 data 参数(例如在 lm 中,尽管在 plot 中可用性较差)。 - Ben Bolker
1
@BenBolker - with()足以作为绘图的一个不错替代,with(dat, plot(y~x)) - Chase
@Chase:没错。对于初学者来说,我认为使用plot(dat$x,dat$y)相对简单一些(尽管我喜欢with并经常使用它)。可能现在向R核心团队请愿在plot中添加一个data参数已经太晚了... - Ben Bolker
实际上,plotformula 方法确实有一个 data 参数:plot(y~x,data=d)(但不是 plot(x,y,data=d))。 - Ben Bolker

1

plot(x~y)

abline(lm(x~y))

应该修复那段代码,对于 MacOs 可以让它正常工作。


实际上,这个答案并不太有用——你已经颠倒了预测变量和响应变量,而原始代码对于尝试过的其他人仍然有效... - Ben Bolker

0
首先创建一个文件来显示你的输出,例如pdf或svg文件,然后同样的代码显然会有帮助。要获得更多澄清,请参阅。
    svg("filename1.svg")
    plot(x ~ y)
    abline(lm(y ~ x))
    dev.off()

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接