R-ggpmisc|回归曲线添加回归方程,R2,方差表,香不香?
时间:2022-07-22
本文章向大家介绍R-ggpmisc|回归曲线添加回归方程,R2,方差表,香不香?,主要内容包括其使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。
散点图绘制回归曲线很常用,那么添加上回归方程,P值,R2或者方差结果表等可以展示更量化的信息。
那加起来复杂吗?还真不一定!
一 载入 R包
使用内置数据集
library(ggplot2) #加载ggplot2包
library(dplyr) #加载dplyr包
library(ggpmisc) #加载ggpmisc包
#展示 使用Species为setosa的亚集
iris2 <- subset(iris,Species == "setosa")head(iris2) Sepal.Length Sepal.Width Petal.Length Petal.Width Species1 5.1 3.5 1.4 0.2 setosa2 4.9 3.0 1.4 0.2 setosa3 4.7 3.2 1.3 0.2 setosa4 4.6 3.1 1.5 0.2 setosa5 5.0 3.6 1.4 0.2 setosa6 5.4 3.9 1.7 0.4 setosa
二 回归曲线的可能性
1, 绘制点图,添加回归线
#散点图
p <- ggplot(iris2, aes(Sepal.Length, Sepal.Width)) +
geom_point(color = "grey50",size = 3, alpha = 0.6)
#回归线
#添加回归曲线
p + stat_smooth(color = "skyblue", fill = "skyblue", method = "lm")
2, 连接点到线
p +
stat_smooth(color = "skyblue", formula = y ~ x,fill = "skyblue", method = "lm")+
stat_fit_deviations(formula = y ~ x, color = "skyblue")
3,添加回归公式
stat_poly_eq
参数添加公式,内含参数可调整位置等
p +
stat_smooth(color = "skyblue", formula = y ~ x,fill = "skyblue", method = "lm") +
stat_poly_eq(
aes(label = paste(..eq.label.., ..adj.rr.label.., sep = '~~~~')),
formula = y ~ x, parse = TRUE,
size = 5, #公式字体大小
label.x = 0.1, #位置 ,0-1之间的比例
label.y = 0.95)
4, 添加方差结果表
p + ylim(2,5) +
stat_smooth(color = "skyblue", formula = y ~ x,fill = "skyblue", method = "lm") +
stat_poly_eq(
aes(label = paste(..eq.label.., ..adj.rr.label.., sep = '~~~~')),
formula = y ~ x, parse = TRUE,size = 3,label.x = 0.1, label.y = 0.99) +
stat_fit_tb(tb.type = 'fit.anova',
label.y.npc = "top", label.x.npc = "left",
)
注:此处仅为展示 ,label.y.npc 为另一种调整位置的方式 ,用label.y可完全避免重叠
如担心方差表和公示与图重叠,可以通过ggplot2 的 ylim
和xlim
适当调整,然后调整位置即可。
5,细节优化方差表
上述方差表中的行名,列名,以及NA,,,稍加调整后,看起来更“专业”!
p + ylim(2,5) +
stat_smooth(color = "skyblue", formula = y ~ x,fill = "skyblue", method = "lm") +
stat_poly_eq(
aes(label = paste(..eq.label.., ..adj.rr.label.., sep = '~~~~')),
formula = y ~ x, parse = TRUE,size = 4,label.x = 0.1, label.y = 0.95) +
stat_fit_tb(method = "lm",
method.args = list(formula = y ~ x),
tb.type = "fit.anova",
tb.vars = c(Effect = "term",
"df",
"M.S." = "meansq",
"italic(F)" = "statistic",
"italic(P)" = "p.value"),
label.y = 0.87, label.x = 0.1,
size = 4,
parse = TRUE
)
以上,使用ylim 和 label.y后,公示和方差表不重叠,也不遮挡点图!
其他:既然是ggplot2的扩展包,ggplot2的一些参数亦可使用:
ggplot2|theme主题设置,详解绘图优化-“精雕细琢”
参考资料:
https://github.com/cran/ggpmisc
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法
- vue-cli3配置路径别名
- 【自动化测试】【Jest-Selenium】(02)—— Jest 匹配器
- 【自动化测试】【Jest-Selenium】(03)—— Jest 异步测试
- 【自动化测试】【Jest-Selenium】(04)—— Selenium WebDriver
- 前端开发"模块打包器"webpack4实战入门
- shadow dom一个最简单的例子
- 程序员必读:Git提交信息和分支创建规范
- 使用brew cask安装minikube的各种错误和解决方法
- 编写高质量可维护的代码:一目了然的注释
- SAP Hybris - how to find corresponding cronjob for a given import
- Linux与Windows间文件互传之TFTP方式
- 假设检验在数据分析中的应用
- 【前端开发】文本阴影:如何使用text-shadow实现首字线索引效果?
- 9.25【前端开发】超链接伪类:如何在svg元素上使用超链接伪类?
- 竞赛比完,代码、模型怎么处理?Kaggle大神:别删,这都是宝藏