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)
使用这个命令,我只有点,没有线条,仍然不适合我。我想要的是一张图,有两条不同的线(代表每个回归的拟合线)和这些回归的点。我想要这些有不同颜色的。任何帮助,将不胜感激。谢谢
解决方案
当使用基本 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))
推荐阅读
- angular - 使用 HttpClient 在 Angular 6 中使用 REST 服务会在订阅时提供未定义的 Observable 值
- sql - 如何以 JSON 形式选择表的列名?
- database - 设计新的数据库表模式,对于存储和处理效率的最短列名是否有任何行业标准?
- ios - 自定义 UIView 中的动画 setFillColor 颜色变化
- php - 更新 twilio 中的会议活动
- vba - 使用 =COLUMN 函数从表中返回列号
- angular - 当为真且数组为空时,angular2 *ngIf 不起作用
- javascript - 如何在 Angular 2 应用程序中包含 jquery 库
- openlayers - Openlayers 图标定位
- javascript - X单击后模态滑入和滑出