相关文章推荐
粗眉毛的刺猬  ·  pyuic5找不到文件-腾讯云开发者社区-腾讯云·  1 年前    · 
要出家的感冒药  ·  Python正则表达式的findall函数与 ...·  1 年前    · 
逆袭的沙滩裤  ·  U8常见问题汇总_tisyact的博客-CS ...·  2 年前    · 
风流的匕首  ·  python 分析 tcpdump ...·  2 年前    · 
强健的鸭蛋  ·  8. ...·  2 年前    · 
Code  ›  ggplot2在图上添加线性拟合方程和R值开发者社区
线性拟合
https://cloud.tencent.com/developer/article/1697331
温暖的消炎药
2 年前
作者头像
生信交流平台
0 篇文章

ggplot2在图上添加线性拟合方程和R值

前往专栏
腾讯云
开发者社区
文档 意见反馈 控制台
首页
学习
活动
专区
工具
TVP
文章/答案/技术大牛
发布
首页
学习
活动
专区
工具
TVP
返回腾讯云官网
社区首页 > 专栏 > 用户7627119的专栏 > ggplot2在图上添加线性拟合方程和R值

ggplot2在图上添加线性拟合方程和R值

作者头像
生信交流平台
发布 于 2020-09-14 17:29:28
10.4K 0
发布 于 2020-09-14 17:29:28
举报

今天给大家分享三种在ggplot2包画的图形上添加拟合的线性回归方程和R^2的值的方法。

1 解决方案1

library(ggplot2)
set.seed(1234)
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()
lm_eqn <- function(df){
  m <- lm(y ~ x, df);
  eq <- substitute(italic(y) == a + b %.% italic(x)*","~~italic(r)^2~"="~r2, 
                   list(a = format(unname(coef(m)[1]), digits = 2),
                        b = format(unname(coef(m)[2]), digits = 2),
                        r2 = format(summary(m)$r.squared, digits = 3)))
  as.character(as.expression(eq));
p1 <- p + geom_text(x = 25, y = 300, label = lm_eqn(df), parse = TRUE)
p1

运行结果,如图1所示。

2 解决方案2, 借用了 ggpmisc包 。

library(ggplot2)
library(ggpmisc)
set.seed(1234)
df <- data.frame(x = c(1:100))
df$y <- 2 + 3 * df$x + rnorm(100, sd = 40)
my.formula <- y ~ x
p <- ggplot(data = df, aes(x = x, y = y)) +
  geom_smooth(method = "lm", se=FALSE, color="black", formula = my.formula) +
  stat_poly_eq(formula = my.formula, 
               aes(label = paste(..eq.label.., ..rr.label.., sep = "~~~")), 
               parse = TRUE) +         
  geom_point()
p

运行结果,如图2所示。

3 解决方案3, 借用了 ggpurb包 。

library(ggplot2)
library(ggpubr)
set.seed(1234)
df <- data.frame(x = c(1:100))
 
推荐文章
粗眉毛的刺猬  ·  pyuic5找不到文件-腾讯云开发者社区-腾讯云
1 年前
要出家的感冒药  ·  Python正则表达式的findall函数与分组 - Howell_Duan - 博客园
1 年前
逆袭的沙滩裤  ·  U8常见问题汇总_tisyact的博客-CSDN博客
2 年前
风流的匕首  ·  python 分析 tcpdump python解析tcp数据包_mob6454cc6e6a40的技术博客_51CTO博客
2 年前
强健的鸭蛋  ·  8. 基于python开发的数据比对工具--SYDCTOOL介绍_ITPUB博客
2 年前
今天看啥   ·   Py中国   ·   codingpro   ·   小百科   ·   link之家   ·   卧龙AI搜索
删除内容请联系邮箱 2879853325@qq.com
Code - 代码工具平台
© 2024 ~ 沪ICP备11025650号