R语言ggplot2合并5个绘图为单图 固定Y轴SPC6h显示回归方程
实现代码
首先安装加载必要依赖包:
library(ggplot2) library(tidyr) library(ggpmisc) # 用于自动生成、标注回归方程
数据转换+绘图完整代码:
# 1. 宽表转长表:固定SPC6h为Y,其余所有列转为待回归的自变量分组 data_long <- data %>% pivot_longer(cols = -SPC6h, names_to = "variable", values_to = "x_value") # 2. 绘图 ggplot(data_long, aes(x = x_value, y = SPC6h, color = variable)) + geom_point(size = 3) + # 不需要展示散点可直接删除该行 geom_smooth(method = "lm", se = FALSE, linewidth = 1) + # 自动添加回归方程与R²标注 stat_poly_eq( aes(label = paste(after_stat(eq.label), after_stat(rr.label), sep = "~~~~")), parse = TRUE, label.x = "right", # 标签横向位置,可调整为left/center或0-1的数值 label.y = "top", # 标签纵向位置,可调整为bottom/center或0-1的数值 size = 3.5 ) + # 可手动指定各拟合线配色,示例色值可按需替换 # scale_color_manual(values = c("#56B4E9", "#E69F00", "#009E73", "#F0E442", "#D55E00")) + labs(x = "自变量", y = "SPC6h") + theme_bw()
调整说明
- 若出现标签重叠,可手动给每个分组的
stat_poly_eq单独设置label.x、label.y数值定位 - 若不想额外安装ggpmisc包,可手动循环计算所有自变量的回归系数、R²,生成标注数据框后用
geom_text()添加标注,代码复杂度更高 - 如果不需要区分散点颜色,可将
color = variable参数从全局aes移到geom_smooth的aes中,散点就会统一配色
内容的提问来源于stack exchange,提问作者Janet
相关产品推荐
相关产品推荐

