首页 > 解决方案 > 添加两个点和线有问题的回归图

问题描述

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

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)

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

标签: r

解决方案


当使用基本 R 图形绘制一些东西但它没有出现在图表中时,很有可能你已经在绘图区域之外绘制了它。x在下面的示例中,我将通过首先获取适当的y轴限制 来确保所有内容都在绘图区域中。

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

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")

在此处输入图像描述

数据创建代码。

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))

推荐阅读