R进阶绘图--散点箱线图+显著性 / 组间差异比较 / ggpubr包
R进阶绘图系列主要是带领大家绘制一些科研中常用到的组合图形,力争在表达更多信息的同时而又不失美观,该系列会持续更新,有需要的小伙伴赶紧关注起来吧。
预备知识
今天的内容是连续型变量的组间差异比较,首先来说独立样本。
两组独立样本:如果数据同时满足正态性和方差齐性,可以采用独立样本t检验或者Wilcoxon秩和检验,如果不满足可采用Wilcoxon秩和检验。
两组以上独立样本:如果数据同时满足正态性和方差齐性,可以采用方差分析(ANOVA)或者Kruskal检验,如果不满足可采用Kruskal检验。
独立样本t检验检验和方差分析(ANOVA)都是参数检验,对数据分布具有一定的假设,在符合检验假设的情况下,建议采用参数检验。
Wilcoxon秩和检验和Kruskal检验都是非参数检验,可用于呈偏态分布或者组间不满足方差齐性的数据,对数据分布无要求。
接下来说非独立样本。
两组非独立样本:如果数据满足正态性,可以采用配对t检验或者Wilcoxon符号秩检验,如果不满足可采用Wilcoxon符号秩检验。
两组以上非独立样本:如果数据同时满足正态性和方差齐性,可以采用重复测量方差分析(Repeated Measures ANOVA)或者Friedman M检验,如果不满足可采用Friedman M检验。
配对t检验和重复测量方差分析(Repeated Measures ANOVA)都是参数检验,Wilcoxon符号秩检验和Friedman M检验都是非参数检验。
大家在绘图前要首先为自己的数据选择合适的检验方法,不要只求出图哦。
写上面一段话,我都快把自己给绕晕了,个人能力有限,如果大家发现任何问题,欢迎后台留言指正,我会在公众号底部做一个纠错专栏,所有出现错误然后纠正后的内容会放在那里(ps:因为基本上改不了原文)。
绘图
加载包和数据
# 加载包、导入数据
library(ggpubr) # 继承ggplot语法
library(patchwork) # 拼图包
library(ggsci) #配色包
data("ToothGrowth")
ToothGrowth$dose=factor(ToothGrowth$dose)
数据介绍
ToothGrowth数据集结构如图所示,这是一项评估维生素C对豚鼠牙齿生长的影响的研究数据,len是牙齿长度;supp是两种给药方式,一种是橙汁OJ,另一种是抗坏血酸VC;dose是三种给药水平。对于该数据集我们后续均采用非参数检验方法。
散点箱线图
# 绘制散点箱线图-----------------------------------------
p <- ggplot(ToothGrowth, aes(x=dose, y=len,color=dose)) +
# 绘制箱线图
geom_boxplot(aes(fill=dose),
alpha=0.1)+ # 设置透明度
# 绘制散点
geom_jitter()+
# 设置颜色
scale_color_manual(values = pal_npg('nrc')(9))+
scale_fill_manual(values = pal_npg('nrc')(9))+
# 设置主题
theme_bw()+
# 去除网格线
theme(panel.grid = element_blank())
p
stat_compare_means( )参数解读
- method(方法):指定要执行的统计检验。对于非配对检验:
"t.test"
:数据需满足双独立样本,正态性,方差齐性。"wilcox.test"
:数据需满足双独立样本。(两组数据的默认方法)"kruskal.test"
:数据需满足三组或更多组独立样本。(>=3组数据的默认方法)"anova"
:数据需满足三组或更多组独立样本,正态性,方差齐性。
- label(标签):默认显示检验方法和p值,
p.format
只显示p值不显示检验方法,p.signif
显示显著性水平符号,ns
: p > 0.05、*
: p <= 0.05、**
: p <= 0.01、***
: p <= 0.001、****
: p <= 0.0001。 - label.x与label.y:标签的坐标位置。
- comparisons(比较):一个列表,用于指定要进行比较的组。
- order(顺序):一个可选的参数,用于指定应显示比较的顺序。
- paired(配对):逻辑值。如果为
TRUE
,表示进行比较的组是配对的。 - show.legend :逻辑值,是否在图例中显示,建议False。
单因素两水平/多水平比较
# 单因素:两水平/多水平比较----------------------------------------
p1 <- p+stat_compare_means(method = "kruskal.test",
label = "p.format",
label.x = 0.8,
label.y = 33,
show.legend = F)
p2 <- p+stat_compare_means(method = "kruskal.test",
label = "p.signif",
label.x = 0.8,
label.y = 33,
show.legend = F)
p1+p2
ggsave('plot1.pdf',width = 7,height = 4.5)
单因素多水平两两比较
# 单因素:多水平两两比较-------------------------------------------
# 设置要比较的分组
my_comparisons <- list(c("0.5", "1"), c("0.5", "2"),c("1", "2"))
p3 <- p + stat_compare_means(comparisons=my_comparisons,
label.y = c(28, 32, 36),
method="wilcox.test"
)
p4 <- p + stat_compare_means(comparisons=my_comparisons,
label.y = c(28, 32, 36),
method="wilcox.test",
label="p.signif"
)
p3+p4
ggsave('plot2.pdf',width = 7,height = 4.5)
双因素
# 双因素----------------------------------------------------------
p5<-ggplot(ToothGrowth,aes(x=dose,y=len,color=supp))+
geom_boxplot(aes(fill=supp),
alpha=0.1)+
geom_jitter(position = position_jitterdodge(jitter.height=0.75, # 散点抖动高度
jitter.width = 0.5, # 散点抖动宽度
dodge.width = 0.75))+ # x轴方向上的闪避量
scale_color_manual(values = pal_npg('nrc')(9)[c(1,3)])+
scale_fill_manual(values = pal_npg('nrc')(9)[c(1,3)])+
theme_bw()+
theme(panel.grid = element_blank())
p5 <- p5 + stat_compare_means(aes(group = supp),
label="p.signif",
show.legend = F)
p5
ggsave('plot3.pdf',width = 6,height = 4)
R进阶绘图–散点箱线图+显著性 / 组间差异比较 / ggpubr包
R进阶绘图–散点图+统计分布图/ggpubr包/aplot包/gridExtra包
合集文章
本期的内容就到这里了,喜欢的小伙伴,欢迎点赞、转发、收藏、在看哦!
关注数据之帆,成为一帆的原始粉丝,和一帆一起进步吧!
参考资料
https://rpkgs.datanovia.com/ggpubr/
https://mp.weixin.qq.com/s/LV2W5aen9QSRcs4wB7MgDA
更多推荐
所有评论(0)