gpt4 book ai didi

r - 如何向现有的 facet_grid 添加低(或 lm)线

转载 作者:行者123 更新时间:2023-12-03 20:18:15 26 4
gpt4 key购买 nike

情况是这样的,我有三组数据(比如 A、B 和 C)。我想绘制 X 和 Y 之间的关系,以及不同面板中的组。简单易行:

set.seed(111)
groups = sample(c("A", "B", "C"), 1500, replace=T)
x=rnorm(1500); y = rnorm(1500, 0, sqrt(1-.25^2))
y = model.matrix(y~x*groups + I(x^2)) %*% c(0, .5, 1, 2, -.2, .2, .5) + rnorm(1500, 0, sqrt(1-.25^2))
d = data.frame(x=x, y=y, groups=groups)
b = ggplot(data=d, aes(x, y)) +
geom_point() +
geom_smooth() +
facet_wrap(~groups) +
theme_bw()
b

enter image description here

问题是很难直观地比较面板上的预测线。 (在这个简单的例子中,这并不难,但对于我的应用程序来说很难)。我认为一个好主意是在 B/C 面板中覆盖面板 A 的最低线(例如,可能是红线)。我的第一个想法是为仅包含来自面板 A 的信息的子集数据集创建一个新的 geom_smooth 并将其绘制在面板中,但我不知道如何在绘制后修改现有面板。

有什么想法吗?

最佳答案

这不是非常容易,但您可以使用 ggplot_build() 从平滑中提取计算信息:

g0 <- ggplot(data=subset(d,groups=="A"), aes(x,y))+geom_smooth()
d_smooth <- ggplot_build(g0)$data[[1]]
## add line to existing plot
b + geom_line(data=d_smooth,colour="red")

enter image description here

关于r - 如何向现有的 facet_grid 添加低(或 lm)线,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52682789/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com