轻松添加P值!
本期分享如何使用R为为分组数据差异添加统计检验P value。
使用R ggplot2自带的鸢尾花iris数据集,比较setosa、versicolor、virginica三类鸢尾花的Sepal.Width是否具有显著差异。
下文代码使用时,确保R中已安装:"ggplot2","ggsignif","ggpubr","ggbeeswarm","ggtext" 和"showtext"包。
数值格式 P value
详细注释代码,
library(ggplot2) # 调用数据iris,使用geom_boxplot()绘制箱图
library(ggsignif) # 使用geom_signif()添加p值
library(ggpubr) # 使用theme_pubr()设置绘图主题
library(ggbeeswarm) # 使用geom_quasirandom()添加蜂窝图
library(ggtext) # 使用element_markdown()设置文字显示
library(showtext) # 使用showtext_auto()解决R中中文字体显示「豆腐块」问题
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值显示样式为:数值P value
) +
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")
)
“*”格式 P value
详细注释代码,
library(ggplot2) # 调用数据iris,使用geom_boxplot()绘制箱图
library(ggsignif) # 使用geom_signif()添加p值
library(ggpubr) # 使用theme_pubr()设置绘图主题
library(ggbeeswarm) # 使用geom_quasirandom()添加蜂窝图
library(ggtext) # 使用element_markdown()设置文字显示
library(showtext) # 使用showtext_auto()解决R中中文字体显示「豆腐块」问题
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 = T # 设置p值显示样式为:“*”P value
) +
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")
)
“ns”格式 P value
详细注释代码,
library(ggplot2) # 调用数据iris,使用geom_boxplot()绘制箱图
library(ggsignif) # 使用geom_signif()添加p值
library(ggpubr) # 使用theme_pubr()设置绘图主题
library(ggbeeswarm) # 使用geom_quasirandom()添加蜂窝图
library(ggtext) # 使用element_markdown()设置文字显示
library(showtext) # 使用showtext_auto()解决R中中文字体显示「豆腐块」问题
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,
annotations = c('***','***','NS'),
map_signif_level = T # 设置p值显示样式为:“*”、“NS”
) +
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")
)
-END- 推荐阅读:
10W字《R ggplot2可视化教程1.0》来了! 详解Python列表推导式|迭代器|生成器|匿名函数 Jupyter Notebook的16个超棒插件! 临床WGS/WES/Gene Panel/Single gene异同 一图胜千言,超形象图解NumPy教程! 那些神经网络可视化利器 R Graphics Cookbook中译教程
我的学习小圈子👉 加入
赞、在看就是最大的支持