添加两个点和线有问题的回归图

时间:2019-01-20 15:15:19

标签: r

我在任何地方都找不到答案。 我有来自两个不同数据集的两条回归线。我试图将这两条回归线放在一张图中。以下效果很好。

regression1<-lm(Y ~ X, data = mydata1) 
regression2<-lm(Y ~ X, data = mydata2)
abline(regression1)
abline(regression2)

但是在此情节中,我只有线条,而没有点。我跑:

regression1<-lm(Y ~ X, data = mydata1)
regression2<-lm(Y ~ X, data = mydata2)
plot(c(0,2),c(0,2),type="n") +
points(rnorm(200), rnorm(200), col = "red") 
abline(regression1) 
abline(regression2)

使用此命令,我只有点,没有线,但仍然对我不起作用。我想要的是一张图,其中包含两条不同的线(代表每个回归的拟合线)和这些回归的点。我想要这些具有不同的颜色。任何帮助,将不胜感激。谢谢

1 个答案:

答案 0 :(得分:1)

当使用基本R图形绘制东西时,它并未显示在图形中,可能是您已将其绘制在绘图区域之外。在下面的示例中,我将通过首先获取适当的xy轴限制来确保所有内容都在绘图区域中。

前两行代码可以解决问题。

rangeX <- range(c(mydata1$X, mydata2$X))
rangeY <- range(c(mydata1$Y, mydata2$Y))

regression1 <- lm(Y ~ X, data = mydata1)
regression2 <- lm(Y ~ X, data = mydata2)
plot(rangeX, rangeY, type = "n", xlab = "X", ylab = "Y")
with(mydata1, points(X, Y, col = "red"))
with(mydata2, points(X, Y, col = "blue"))
abline(regression1, col = "red")
abline(regression2, col = "blue")

enter image description here

数据创建代码。

set.seed(1234)

n <- 20
x <- seq_len(n) + rnorm(n)
mydata1 <- data.frame(X = x, Y = x + rnorm(n))
x <- seq_len(n) + rnorm(n)
mu <- 3
mydata2 <- data.frame(X = x + rnorm(n), Y = mu + x + rnorm(n))