You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何用stat_poly_eq移除p值等号并设置有效数字?

解决stat_poly_eq的R²和p值格式优化问题

问题1:移除p值中的等号,仅保留小于号

stat_poly_eq提供了p.value.format参数,可自定义p值的显示格式。若希望所有p值以<呈现,直接设置格式化函数即可;若需仅在p值小于特定阈值(如0.001)时显示<,可通过条件判断实现。

问题2:设置3位有效数字

使用rr.digits参数控制R²的有效数字位数,p.digits控制p值的有效数字位数,两者均设为3即可满足需求。

修正后的完整代码

data(mtcars)

ggplot(data=mtcars, aes(x=mpg,y=hp)) +
  geom_point() +
  geom_smooth(method = "lm", formula = y ~ x, se=TRUE, color="black") +
  stat_poly_eq(
    formula = y ~ x, 
    aes(label = paste(..rr.label.., ..p.value.label.., sep = "*`,`~")),
    parse = TRUE,
    label.x.npc = "right",
    size=8,
    # 设置R²和p值的有效数字为3位
    rr.digits = 3,
    p.digits = 3,
    # 自定义p值格式,仅保留小于号
    p.value.format = function(x) sprintf("p < %.3g", x)
  )

补充说明

  • 若需区分p值大小显示格式(如p<0.001时显示<,否则显示=),可修改p.value.format为:
p.value.format = function(x) {
  if (x < 0.001) {
    sprintf("p < %.3g", x)
  } else {
    sprintf("p = %.3g", x)
  }
}
  • 原代码存在语法错误(stat_poly_eq多了一个闭合括号),已在修正代码中移除。

内容的提问来源于stack exchange,提问作者Cameron M

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.07 06:05:14