前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >「R」ggplot 图 P 值格式化

「R」ggplot 图 P 值格式化

作者头像
王诗翔呀
发布2022-01-21 08:51:52
1.1K0
发布2022-01-21 08:51:52
举报
文章被收录于专栏:优雅R优雅R

「ggpubr」 包中的 stat_compare_means() 函数是非常常用于对 ggplot 图形添加统计比较结果的方法,近期有粉丝问到了如何对其展示的 P 值进行格式化,这里简要地做一个记录。

这里我们直接使用官方示例:

代码语言:javascript
复制
library(ggpubr)
#> Loading required package: ggplot2
data("ToothGrowth")
head(ToothGrowth)
#>    len supp dose
#> 1  4.2   VC  0.5
#> 2 11.5   VC  0.5
#> 3  7.3   VC  0.5
#> 4  5.8   VC  0.5
#> 5  6.4   VC  0.5
#> 6 10.0   VC  0.5

# Two independent groups
# :::::::::::::::::::::::::::::::::::::::::::::::::
p <- ggboxplot(ToothGrowth,
  x = "supp", y = "len",
  color = "supp", palette = "npg", add = "jitter"
)

#  Add p-value
p + stat_compare_means()

可以看到图中是以检验方法+P值的结果来展示 P 值的,那么该如何修改它呢?关键是修改函数中的 label 参数和掌握匿名变量 ..p.format..,下面是一个简单的修改:

代码语言:javascript
复制
p + stat_compare_means(aes(label = paste0("P = ", round(as.numeric(..p.format..), 1))))

这里需要注意的是 ..p.format.. 是一个字符串,如果我们需要修改它展示的数值位数,需要先进行转换。

进一步我们还可以根据运行 ?stat_compare_means 提供的说明修改 P 值的位置:

代码语言:javascript
复制
p + stat_compare_means(aes(label = paste0("P = ", round(as.numeric(..p.format..), 1))),
  label.y = 33, label.x = 1.5
)

大家可以想一下为什么 label.x = 1.5 可以将标签移动到两组的中间?

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2021-03-08,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 优雅R 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档