我想知道如何在 ggplot
上添加回归线方程和R ^ 2 . 我的代码是
library(ggplot2)
df <- data.frame(x = c(1:100))
df$y <- 2 + 3 * df$x + rnorm(100, sd = 40)
p <- ggplot(data = df, aes(x = x, y = y)) +
geom_smooth(method = "lm", se=FALSE, color="black", formula = y ~ x) +
geom_point()
p
任何帮助将受到高度赞赏 .
5 回答
这是一个解决方案
编辑 . 我从我选择此代码的地方找到了源代码 . 这是ggplot2谷歌群组中原始帖子的link
我改变了
stat_smooth
和相关函数的几行来创建一个新函数,它增加了拟合方程和R平方值 . 这也适用于小平面图!我使用@ Ramnath答案中的代码来格式化等式 .
stat_smooth_func
函数很难用它来玩 .https://gist.github.com/kdauria/524eade46135f6348140 . 如果出现错误,请尝试更新
ggplot2
.我在我的包ggpmisc中包含了一个统计数据
stat_poly_eq()
,它允许这个答案:此统计数据适用于任何没有缺失项的多项式,并且希望具有足够的灵活性以通常有用 . R ^ 2或经调整的R ^ 2标记可与任何配有lm()的模型公式一起使用 . 作为一个ggplot统计数据,它的行为与团队和方面一样 .
'ggpmisc'包可以通过CRAN获得 .
版本0.2.6刚刚被CRAN接受 .
它涉及@shabbychef和@ MYaseen208的评论 .
@ MYaseen208这显示了如何添加帽子 .
@shabbychef现在可以将等式中的变量与用于轴标签的变量相匹配 . 要用z代替z和y,我会使用:
作为这些正常的R解析表达式,希腊字母现在也可以在等式的lhs和rhs中使用 .
[2017-03-08] @elarry编辑以更精确地解决原始问题,显示如何在等式和R2标签之间添加逗号 .
我已经将Ramnath的帖子修改为a)使其更通用,因此它接受线性模型作为参数而不是数据框,并且b)更适当地显示负片 .
用法将变为:
真的很喜欢@Ramnath解决方案 . 为了允许使用自定义回归公式(而不是固定为y和x作为文字变量名称),并将p值添加到打印输出中(如@Jerry T评论),这里是mod:
不幸的是,这不适用于facet_wrap或facet_grid .