如何在ggplot的stat_compare_means中自定义p值星号,将p<0.1设为*?
当然可以修改,用stat_compare_means的symnum.args参数就能自定义p值与星号的对应规则,具体操作如下:
自定义符号映射规则
你需要重新设置阈值区间和对应符号:
- 阈值区间
cutpoints设为c(0, 0.001, 0.01, 0.1, 1),对应四个区间:[0,0.001)、[0.001,0.01)、[0.01,0.1)、[0.1,1] - 对应符号
symbols设为c("***", "**", "*", "ns"),刚好满足你要的:p<0.001显示***,p<0.01显示**,p<0.1显示*,p≥0.1显示ns的需求
修改后的完整代码
把symnum.args参数加入你原有的代码中即可:
stat_compare_means( aes(label = paste0('', after_stat(p.format), ' ', after_stat(p.signif))), label.y = 450, vjust = 1, method = "t.test", ref.group = "0", size=3, fontface="bold", symnum.args = list( cutpoints = c(0, 0.001, 0.01, 0.1, 1), symbols = c("***", "**", "*", "ns") ) )
关键说明
symnum.args是stat_compare_means传递给底层symnum()函数的参数集合,通过调整cutpoints(阈值分界点)和symbols(对应符号)的一一对应关系,就能完全自定义p值的符号显示逻辑,后续如果需要调整其他阈值规则,直接修改这两个参数即可。
内容的提问来源于stack exchange,提问作者Steven
相关产品推荐
相关产品推荐

