R语言绘图教程丨Nature论文都在用的多组比较箱线图,自动计算显著性并标注,附带误差线

简介: R语言绘图教程丨Nature论文都在用的多组比较箱线图,自动计算显著性并标注,附带误差线

多组比较式箱线图

在科研论文绘图中,对于多组数据进行比较一般采用箱线图的方法,今天分享一下这个经典数据可视化方法,从零开始绘制一张带误差棒并自动计算显著性比较结果的箱线图

前言:箱线图有什么优势?

  • 数据分布信息:

箱线图能够直观地展示数据的分布情况,包括数据的中位数、上下四分位数和离群值。

  • 离群值检测:

箱线图可以帮助识别离群值,即与其他观测值明显不同的极端值,论文中使用箱线图可以帮助研究人员和读者快速识别和评估离群值的影响。

  • 比较分组数据:

箱线图可以同时显示多个组或条件的数据分布情况,使得不同组之间的比较更加直观,进而进行统计推断和假设检验。

  • 可视化简洁性:

箱线图以简洁直观的方式呈现数据分布,不需要过多的图形元素和细节。

箱线图的绘制方法

载入R包与数据

library(tidyverse)
library(ggsignif)
library(ggsci)
library(ggpubr)
# 使用随机测试数据
df <- data.frame(
    group = rep(c("A", "B", "C","D","E"), each = 20),
    value = c(rnorm(20, mean = 5, sd = 2),
              rnorm(20, mean = 7, sd = 1.5),
              rnorm(20, mean = 8, sd = 2),
              rnorm(20, mean = 4, sd = 1),
              rnorm(20, mean = 4.7, sd = 1.2)))
#使用自己的数据
df <- read.table("data.txt",header = T)

绘图所用数据很简单,分成两列,第一列是分组信息,第二列是具体的数值,如下所示:

> head(df)
  group    value
1     A 7.442960
2     A 3.582090
3     A 5.422412
4     A 3.891454
5     A 6.129032
6     A 3.011515

ggplot2绘图

使用以下代码即可绘制出一张箱线图,附带显著性标注和误差棒,直接可以放在论文中进行使用。

ggplot(df,aes(group,value))+
    stat_summary(fun.data = mean_sdl, 
                 fun.args = list(mult = 1), 
                 geom = "errorbar", 
                 width = 0.1,
                 size=0.8,
                 alpha=0.7)+
    geom_boxplot(aes(fill=group),coef = 1000000)+
    geom_signif(
        comparisons = list(
            c("A","B"),
            c("D","E")
        ), 
        map_signif_level = T, 
        test = "t.test", 
        vjust=0.1, 
        tip_length = 0.02 
        )+
    labs(x = "",y = "Value")+
    ylim(0,13)+
    theme_bw()+
    theme(
        legend.position = "none",
        axis.title = element_text(size = 15,face = "bold"),
        axis.text.x = element_text(size = 12,color = "black"),
        axis.title.y = element_text(size = 12,color = "black")
    )
ggsave("test.pdf",width = 10,height = 4)

代码原理解释

ggplot(df, aes(group, value))

创建一个基础的ggplot对象,其中df是数据框,group和value是数据框中的两个变量,用于指定x轴和y轴的数据。

stat_summary(fun.data = mean_sdl, 
             fun.args = list(mult = 1), 
             geom = "errorbar", 
             width = 0.1, 
             size = 0.8, 
             alpha = 0.7)

使用stat_summary函数对数据进行汇总统计,并绘制误差线。mean_sdl是用于计算均值和标准差的函数,fun.args参数用于传递给mean_sdl函数的参数,geom参数指定使用误差线图形,width参数指定误差线的宽度,size参数指定误差线的线条粗细,alpha参数指定误差线的透明度。

geom_boxplot(aes(fill = group), coef = 1000000)

使用geom_boxplot函数绘制箱线图,并根据group变量对箱线图进行分组。fill参数用于指定组别的填充颜色,coef参数用于调整箱线图的宽度。

geom_signif(comparisons = list(c("A", "B"), 
                               c("D", "E")), 
            map_signif_level = T, 
            test = "t.test", 
            vjust = 0.1, 
            tip_length = 0.02)

使用geom_signif函数在图形中添加显著性标记。comparisons参数指定要比较的组别,map_signif_level参数指定是否映射显著性水平,test参数指定使用的统计检验方法,vjust参数指定标记的垂直位置,tip_length参数指定标记的长度。

labs(x = "", y = "Value")

添加x轴和y轴的标签,其中x轴标签为空字符串,y轴标签为"Value"。

ylim(0, 13)

设置y轴的坐标范围为0到13。

theme_bw()+
theme(legend.position = "none", 
      axis.title = element_text(size = 15, face = "bold"), 
      axis.text.x = element_text(size = 12, color = "black"), 
      axis.title.y = element_text(size = 12, color = "black"))

设置图形的主题样式为白色,其中legend.position参数设置图例的位置为"none",axis.title参数设置坐标轴标题的样式,axis.text.x参数设置x轴标签的样式,axis.title.y参数设置y轴标题的样式。

相关文章
|
6月前
R语言ECM误差修正模型、均衡修正模型、受限VECM、协整检验、单位根检验即期利率市场数据
R语言ECM误差修正模型、均衡修正模型、受限VECM、协整检验、单位根检验即期利率市场数据
|
6月前
|
数据可视化 算法
R语言近似贝叶斯计算MCMC(ABC-MCMC)轨迹图和边缘图可视化
R语言近似贝叶斯计算MCMC(ABC-MCMC)轨迹图和边缘图可视化
|
6月前
|
人工智能 并行计算
R语言中使用RCPP并行计算指数加权波动率
R语言中使用RCPP并行计算指数加权波动率
|
6月前
|
存储 数据可视化
R语言计算资本资产定价模型(CAPM)中的Beta值和可视化
R语言计算资本资产定价模型(CAPM)中的Beta值和可视化
|
6月前
R语言绘图相关函数(含实例)
R语言绘图相关函数(含实例)
54 0
|
6月前
|
机器学习/深度学习 算法
R语言用随机森林模型的酒店收入和产量预测误差分析
R语言用随机森林模型的酒店收入和产量预测误差分析
|
6月前
|
机器学习/深度学习 数据可视化 数据挖掘
数据分享|R语言对论文作者研究机构、知识单元地理空间数据可视化
数据分享|R语言对论文作者研究机构、知识单元地理空间数据可视化
|
6月前
|
机器学习/深度学习 数据可视化 算法
数据代码分享|R语言用CHAID决策树分析花卉栽培影响因素数据可视化、误差分析
数据代码分享|R语言用CHAID决策树分析花卉栽培影响因素数据可视化、误差分析
|
6月前
|
数据可视化 数据建模
R语言广义加性混合模型(GAMM)分析长沙气象因子、空气污染、PM2.5浓度、显著性检验、逐日变化可视化(下)
R语言广义加性混合模型(GAMM)分析长沙气象因子、空气污染、PM2.5浓度、显著性检验、逐日变化可视化
|
6月前
|
机器学习/深度学习 数据可视化
R语言广义加性混合模型(GAMM)分析长沙气象因子、空气污染、PM2.5浓度、显著性检验、逐日变化可视化(上)
R语言广义加性混合模型(GAMM)分析长沙气象因子、空气污染、PM2.5浓度、显著性检验、逐日变化可视化
下一篇
无影云桌面