该内容已被发布者删除 该内容被自由微信恢复。
文章于 3月31日 下午 6:00 被检测为删除。
被用户删除
其他
在ggplot2中轻松添加趋势线与置信区间!
ggtrendline包
❝ggtrendline是一个用于为ggplot2添加趋势线和置信区间的包
内置的 'ggtrendline()' 函数包括以下模型:
"line2P" - 线性模型:
公式: y = a*x + b 描述: 这是一个简单的线性模型,其中 a 是斜率,b 是截距。它用于描述两个变量之间的线性关系。
"line3P" - 二次模型:
公式: y = ax^2 + bx + c 描述: 这是一个二次模型,它描述了一个抛物线形状的关系。a、b 和 c 是模型的参数,其中 a 控制抛物线的开口方向和大小。
"log2P" - 对数模型:
公式: y = a*ln(x) + b 描述: 对数模型用于描述当 y 的增长与 x 的对数成正比时的情况。这在某些类型的增长数据中很常见,例如人口增长或某些类型的经济增长。
"exp2P" - 指数模型 (2参数):
公式: y = aexp(bx) 描述: 这是一个指数模型,其中 y 的值随 x 的增加而按指数方式增长或衰减。a 是基础值,而 b 控制增长的速率。
"exp3P" - 指数模型 (3参数):
公式: y = aexp(bx) + c 描述: 这是另一个指数模型,但有一个额外的截距项 c。这使得模型更加灵活,可以描述更复杂的指数关系。
"power2P" - 幂模型:
公式: y = a*x^b 描述: 幂模型描述了 y 与 x 的幂次关系。当 b 不为 1 时,这种关系是非线性的。这在描述某些物理现象或经济关系时很有用。
"power3P" - 幂模型 (3参数):
公式: y = a*x^b + c 描述: 这是幂模型的一个变体,它有一个额外的截距项 c。这增加了模型的灵活性,使其能够描述更广泛的幂次关系。
安装和加载R包
从CRAN获取发布版本:
install.packages("ggtrendline")
从Github获取开发版本:
install.packages("devtools")
devtools::install_github("PhDMeiwp/ggtrendline@master", force = TRUE)
加载R包:
library(ggplot2)
library(ggtrendline)
创建数据
data <- data.frame(
x <- c(1, 3, 6, 9, 13, 17),
y <- c(5, 7, 12, 13, 13.2, 14.5)
)
添加趋势线
# ggtrendline 函数用于在 ggplot2 图形上添加趋势线
# model: 拟合数据的模型类型,"line2P" 表示一个二次多项式模型(即 y = ax^2 + bx + c)
ggtrendline(x, y, model = "line2P")
添加数据点
# ggtrendline 函数:在散点图上添加趋势线
# model: 拟合数据的模型类型,"line3P" 可能表示一个三次多项式模型(即 y = ax^3 + bx^2 + cx + d)
ggtrendline(x, y, model = "line3P") +
# 在图上添加数据点
geom_point(aes(x, y)) +
# 设置主题
theme_bw()
不填充置信区间
# ggtrendline 函数:在散点图上添加趋势线
# model: 拟合数据的模型类型,"log2P" 可能表示一个二次对数模型(即 log(y) = ax^2 + bx + c)
# CI.fill: 置信区间的填充颜色,NA 表示不填充置信区间
ggtrendline(x, y, model = "log2P", CI.fill = NA) +
# 在图上添加数据点
geom_point(aes(x, y)) +
# 设置主题
theme_classic()
设置趋势线和数据点
# ggtrendline 函数:在散点图上添加趋势线
# model: 拟合数据的模型类型,"exp2P" 可能表示一个二次指数模型
# linecolor: 趋势线的颜色,这里设置为红色
# linetype: 趋势线的类型,1 通常表示实线
# linewidth: 趋势线的宽度,这里设置为 1
ggtrendline(x, y, model = "exp2P", linecolor = "red", linetype = 1, linewidth = 1) +
# geom_point 函数:在图上添加数据点
# color: 数据点的颜色,这里设置为红色
# shape: 数据点的形状,1 通常表示圆形
# size: 数据点的大小,这里设置为 3
geom_point(aes(x, y), color = "red", shape = 1, size = 3)
设置置信区间
# ggtrendline 函数:在散点图上添加趋势线及置信区间
# model: 拟合数据的模型类型,"exp3P" 表示一个三次指数模型
# CI.level: 置信区间的置信水平,这里设置为 0.99,即 99% 置信区间
# CI.fill: 置信区间的填充颜色,这里设置为蓝色
# CI.alpha: 置信区间填充颜色的透明度,0.1 表示较为透明
# CI.color: 置信区间边界线的颜色,NA 表示不绘制边界线
# CI.lty: 置信区间边界线的线型,2 通常表示虚线
# CI.lwd: 置信区间边界线的线宽,这里设置为 1.5
ggtrendline(x, y, model = "exp3P", CI.level = 0.99,
CI.fill = "blue", CI.alpha = 0.1, CI.color = NA, CI.lty = 2, CI.lwd = 1.5) +
# 在图上添加数据点
geom_point(aes(x, y))
绘制多组数据
# 加载iris数据集
data("iris")
# 提取Petal Width和Petal Length
x <- iris$Petal.Width
y <- iris$Petal.Length
group <- iris$Species
ggtrendline(x,y,"exp3P") +
geom_point(aes(x,y,color=group))+
theme_classic()
欢迎加入
参考资料:https://github.com/PhDMeiwp/ggtrendline?tab=readme-ov-file