R语言绘制箱线图
箱线图(又称盒须图)是常见的统计图形之一,通过绘制连续型变量的五数总括,即最小值、下四分位数(第25百分位数)、中位数(第50百分位数)、上四分位数(第75百分位数)以及最大值,描述了连续型变量的分布。箱线图能够显示出可能为离群点(范围±1.5×IQR以外的值,IQR表示四分位距,即上四分位数与下四分位数的差值)的观测。
默认情况下,两条须的延伸极限不会超过盒型各端加1.5倍四分位距的范围。此范围以外的值以点(即离群点)来表示。
本篇通过分享R语言绘制箱线图的几种常见样式的简单示例,以帮助入门的同学们掌握常规的作图技巧。
作图数据的网盘链接(提取码pmbr):
/s/1WZ2UzXPGw9M448v-fms6RA
网盘附件“alpha.csv”为某16S细菌群落测序所获得的部分alpha多样性指数数据。其第一列为样本名称;observed_species、shannon、chao1和PD_whole_tree为四种类型的alpha多样性指数,其中的数值代表了各样本中该alpha多样性指数的数值;group1和group2为样本所对应的分组信息。
本篇我们将通过绘制箱线图,展示alpha多样性指数在各分组中的分布概况。
R语言绘制箱线图的简单示例
我们首先将作图数据读到R中,并分别从中挑选部分数据,便于后续绘制不同的样式。
library(reshape2) alpha alpha$group2 alpha1 alpha2 alpha3#读取数据
boxplot()箱线图
R启动时默认加载了boxplot()命令,可用于绘制箱线图。我们使用boxplot()绘制箱线图展示chao1指数在c分组中的分布,如下示例。
par(mfrow = c(1, 2)) #常规样式 boxplot(value~group2, data = alpha3, col = '#f8766d', ylab = 'Chao1 (group c)') #根据数据分布,添加凹槽 boxplot(value~group2, data = alpha3, col = '#f8766d', notch = TRUE, varwidth = TRUE, ylab = 'Chao1 (group c)')##boxplot() 箱线图,详情使用 ?boxplot 查看帮助
ggplot2绘制箱线图
ggplot2功能强大自然不必多说,以下继续展示使用ggplot2绘制箱线图的示例。
library(ggplot2) #单变量箱线图 ggplot(alpha3, aes(x = group2, y = value)) + geom_boxplot(outlier.size = 1, fill = '#f8766d') + theme(panel.grid = element_blank(), panel.background = element_rect(fill = 'transparent', color = 'black')) + labs(x = '', y = 'Chao1')##ggplot2
ggplot(alpha3, aes(x = group2, y = value, fill = group1)) + geom_boxplot(fill = '#f8766d', notch = TRUE) + geom_jitter(color = 'red', show.legend = FALSE) + theme(panel.grid = element_blank(), panel.background = element_rect(fill = 'transparent', color = 'black')) + labs(x = '', y = 'Chao1 (group c)')#将各数据值以抖动散点的方式添加在箱线图中,同时绘制凹槽
ggplot(alpha2, aes(x = group2, y = value, fill = group1)) + geom_boxplot(outlier.size = 1) + theme(panel.grid = element_blank(), panel.background = element_rect(fill = 'transparent', color = 'black'), legend.title = element_blank(), legend.key = element_blank()) + labs(x = '', y = 'Chao1')#存在多分组时,多组分开展示的箱线图
ggplot(alpha1, aes(x = group2, y = value, fill = group1)) + geom_boxplot(outlier.size = 0.5, size = 0.5) + facet_wrap(~variable, 2, scales = 'free') + theme(panel.grid = element_blank(), panel.background = element_rect(fill = 'transparent', color = 'black'), legend.title = element_blank(), legend.key = element_blank()) + labs(x = '', y = 'Chao1')#多变量情况,添加分面的箱线图
#先绘制箱线图主体 p geom_boxplot(outlier.size = 1) + theme(panel.grid = element_blank(), panel.background = element_rect(fill = 'transparent', color = 'black'), legend.title = element_blank(), legend.key = element_blank()) + labs(x = '', y = 'Chao1') #再手动添加显著性标记 #注意,这里的显著性是提前已经计算好的,我们通过手动输入进来 #本篇只关注作图,不涉及统计分析 library(doBy) alpha2_stat names(alpha2_stat) alpha2_stat$group1 alpha2_stat$sig p + geom_text(data = alpha2_stat, aes(label = sig), vjust = -0.3) + annotate('text', x = alpha2_stat$group2, y = alpha2_stat$value, label = '———', vjust = -0.3)#带显著性标记“*”的箱线图
#先绘制箱线图主体 p geom_boxplot(outlier.size = 0.5, size = 0.5) + facet_wrap(~variable, 2, scales = 'free') + theme(panel.grid = element_blank(), panel.background = element_rect(fill = 'transparent', color = 'black'), legend.title = element_blank(), legend.key = element_blank()) + labs(x = '', y = 'Chao1') #再手动添加显著性标记 #同上所述,这里的显著性是提前通过差异分析已经计算好的,我们通过手动输入进来 alpha1_stat names(alpha1_stat) alpha1_stat$sig p + geom_text(data = alpha1_stat, aes(label = sig, color = group1), position = position_dodge(1), vjust = -0.3)#带显著性标记“abc”的箱线图,
好了,以上就是本篇的内容,大致简介了几种简单的箱线图在R中的绘制示例,以帮助刚接触R的同学们入门,get到了吗?
友情链接
R包vegan执行非参数多元方差分析(置换多元方差分析)
R包rcompanion执行非参数双因素方差分析(Scheirer-Ray-Hare检验)
R包sm执行非参数单因素协方差分析
R语言执行非参数单因素方差分析(Kruskal-Wallis检验、Friedman检验)
R语言执行多元方差分析
R语言执行重复测量方差分析
R语言执行双因素方差分析
R语言执行单因素协方差分析
R语言执行单因素方差分析及多重比较
R语言执行两组间差异分析Wilcoxon检验
R语言执行两组间差异分析T检验
R语言绘制分组柱状图
如果觉得《r语言ggplot2 多线图绘制图例_R语言绘制箱线图示例》对你有帮助,请点赞、收藏,并留下你的观点哦!