【发布时间】:2021-10-22 09:13:12
【问题描述】:
我想将回归线和 R^2 添加到我的 ggplot 中。我将回归线拟合到不同的类别,并且对于每个类别,我都会得到一个独特的方程。我想手动为每个类别设置方程的位置。即找到每组 y 的最大表达式并在 ymax + 1 处打印方程。
这是我的代码:
library(ggpmisc)
df <- data.frame(x = c(1:100))
df$y <- 20 * c(0, 1) + 3 * df$x + rnorm(100, sd = 40)
df$group <- factor(rep(c("A", "B"), 50))
df <- df %>% group_by(group) %>% mutate(ymax = max(y))
my.formula <- y ~ x
df %>%
group_by(group) %>%
do(tidy(lm(y ~ x, data = .)))
p <- ggplot(data = df, aes(x = x, y = y, colour = group)) +
geom_smooth(method = "lm", se=FALSE, formula = my.formula) +
stat_poly_eq(formula = my.formula,
aes(x = x , y = ymax + 1, label = paste(..eq.label.., ..rr.label.., sep = "~~~")),
parse = TRUE) +
geom_point()
p
有什么建议吗?
还有什么方法我只能打印方程的斜率。 (从情节中删除截距)?
谢谢,
【问题讨论】:
标签: r ggplot2 regression equation lm