pythonic生物人

加个P,代码自取!

代码文末直接拿走吧,求个免费的3连了!

本期分享如何使用R为分组数据差异添加统计检验P value。


效果图

  • 添加数值P value效果图,
Image
  • 添加数值P value摘要星号“*”效果图,
Image
  • 添加数值P value摘要“ns”效果图,
Image

代码

使用R ggplot2自带的鸢尾花iris数据集,比较setosa、versicolor、virginica三类鸢尾花的花萼长度是否具有显著差异。

library(ggplot2)
library(ggtext)
library(ggbeeswarm)
library(showtext)
showtext_auto()
ggplot(iris, aes(Species, Sepal.Width, fill = Species)) +
  geom_boxplot(fill = "transparent") + # 绘制箱图
  geom_quasirandom(shape = 21, color = "black", alpha = 1, size = 5) + # 绘制抖动图
  geom_signif( # 添加p值
    comparisons = list(
      c("setosa", "virginica"),
      c("setosa", "versicolor"),
      c("virginica", "versicolor")
    ),
    test = "t.test",
    step_increase = 0.1, textsize = 4,
    map_signif_level = function(p) sprintf("%.2g", p), # 设置p值显示样式
  ) +
  scale_fill_manual(values = c( # 设置抖动图填充色
    "setosa" = "#2e9695",
    "versicolor" = "#fca133",
    "virginica" = "#7193cf"
  )) + 
  labs( # 设置标题
    caption = "Author: <span style='color:#01a2d9'>Pythonic生物人</span>"
  ) +
  theme_pubr() + # 设置绘图主题
  theme(legend.position = "none") + # 关闭图例
  theme(
    plot.caption = element_markdown(hjust = 0.8, vjust = 0.8, size = 11, face = "bold")
  )
Image

添加数值P value摘要星号“*”,

将上面代码中的map_signif_level = function(p) sprintf("%.2g", p)替换为map_signif_level = T即可。

添加数值P value摘要“ns”效果图,

在textsize = 4.5后添加annotations = c('***','***','NS'),即可


-END-

点个 在看就是最大的支持Image