我想在数据区域之外的ggplot2数据的子集上对数据的线性拟合进行推断(以可视化推断的危险)。在下面的代码中,我想将1980-1990年框架内生成的线性拟合扩展到1990-2000年,这样我就可以为整个时间段添加完全拟合并显示差异:

set.seed(123)
frame <- data.frame(year = rep(1980:2000, 10), y = sample(1:1000, 210))
head(frame)

frame1 <- frame[frame$year %in% c(1980:1990),]
frame2 <- frame[frame$year %in% c(1980:2000),]

ggplot(frame1, aes(x = year, y = y)) + geom_point(shape = 1) + geom_smooth(method = lm) + xlim(1980, 2000)
ggplot(frame2, aes(x = year, y = y)) + geom_point(shape = 1) + geom_smooth(method = lm) + xlim(1980, 2000)

我是ggplot2的新手,所以无论如何如何从第一帧扩展线性拟合,然后添加数据,然后用另一种颜色进行新拟合将是很棒的。谢谢。

最佳答案

你可以试试

ggplot(frame2, aes(x = year, y = y)) +
  geom_point(shape = 1) +
  geom_smooth(method = lm, se=FALSE) +
  geom_smooth(data=frame1, method = lm, fullrange=TRUE, se=FALSE, colour="red") +
  xlim(1980, 2000)

r - R中ggplot2中的散点图外推线性拟合-LMLPHP

10-08 04:18