ggplot使用stat_regline_equation()移除回归线方程截距的方法咨询
解决方法
你不需要使用自带的完整方程标签..eq.label..,直接自定义拼接斜率和R²标签即可,修改后的代码如下:
library(ggpmisc) library(dplyr) library(ggplot2) # 原有数据生成逻辑 df <- data.frame(x = c(1:100)) df$y <- 20 * c(0, 1) + 3 * df$x + rnorm(100, sd = 40) df$group <- factor(rep(c("A", "B"), 50)) df <- df %>% group_by(group) %>% mutate(ymax = max(y)) p <- ggplot(data = df, aes(x = x, y = y, colour = group)) + geom_smooth(method = "lm", se=FALSE, formula = y ~ x) + # 自定义标签仅保留斜率和R² stat_regline_equation( aes(label = paste0("italic(y) == ", round(..slope.., 2), "*italic(x) ~~~~~", ..rr.label..)), formula = y ~ x, size = 3, parse = TRUE # 必须添加,保证数学格式正常渲染 ) p
配置说明
..slope..是ggpmisc内置的统计变量,可直接返回每组回归的斜率值round(..slope.., 2)用于控制斜率显示的小数位数,可根据需求调整括号内的数字- 手动拼接标签时没有引入截距相关变量,即可实现移除截距的需求
parse = TRUE用于将字符串解析为R的数学表达式,保证变量斜体、R²等格式和原有显示效果一致
内容的提问来源于stack exchange,提问作者say.ff
相关产品推荐
相关产品推荐

