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轴标题的样式。

相关文章
|
2月前
|
存储 Windows Perl
R 语言教程 之 R 数据类型 6
R语言教程之R数据类型第6部分,深入讲解了字符串数据类型及其操作函数,包括大小写转换、字符统计、字符串截取与拆分、类型转换及正则表达式应用等,示例展示了常见字符串处理技巧。
45 1
|
2月前
|
存储 C语言 索引
R 语言教程 之 R 数据类型 5
R语言中的数据类型包括逻辑型等,逻辑型主要用于向量的逻辑运算。通过`c()`创建向量,使用`&gt;`、`&`等运算符进行条件判断,`which()`函数可筛选符合条件的元素索引。`all()`和`any()`分别用于检测向量是否全为真或含真值。
48 4
|
2月前
|
存储
R 语言教程 之 R 数据类型 4
R语言中的数据类型是用于定义变量或函数的系统。变量类型决定其存储空间及位模式的解析方式。向量可通过c()函数、min:max运算符或seq()函数生成,rep()函数用于生成重复序列。NA表示“缺失”,NULL表示“不存在”。例如,length(c(NA, NA, NULL))返回2,说明NULL在向量中不占位置。
45 5
|
2月前
|
存储
R 语言教程 之 R 数据类型 3
本教程介绍R语言中的数据类型及向量统计函数,包括sum、mean、var等,通过实例展示如何使用这些函数进行基本的统计计算。
43 4
|
3月前
|
存储 Rust Java
R 语言教程 之 R 数据类型 2
R语言中的数据类型涵盖了变量和函数的广泛系统,其中向量(Vector)作为基础数据结构之一,类似于线性表或数组,支持高效的数学运算与操作。向量可通过`c()`函数创建,支持元素级运算、索引访问及部分提取等特性。此外,R提供了如`sort()`、`rev()`和`order()`等函数,方便进行向量的排序与逆序操作。
58 7
|
3月前
|
存储
R 语言教程 之 R 数据类型 1
R 语言是一种广泛用于统计计算和图形生成的编程语言。本教程介绍 R 语言的基本数据类型,包括数字、逻辑和文本类型,以及如何定义变量。R 中的变量定义灵活,无需显式声明类型。此外,还介绍了六种主要的对象类型:向量、列表、矩阵、数组、因子和数据框。
68 9
|
3月前
|
C语言
R 语言教程 之 R 基础运算 7
本章《R基础运算》介绍了R语言中的基本数学运算,包括取整、三角及反三角函数,以及正态分布等概率分布函数的使用方法。通过具体实例演示了这些函数在实际操作中的应用,如取整函数`round()`, `ceiling()`, `floor()`的特性,以及正态分布函数`dnorm()`, `pnorm()`, `qnorm()`, `rnorm()`的功能与区别。适合初学者快速掌握R语言的基础数学处理能力。
49 0
|
3月前
|
机器学习/深度学习
R 语言教程 之 R 基础运算 6
本章《R基础运算》介绍了R语言中的基本数学运算与函数,包括求平方根、自然指数、对数等常用函数,并通过实例展示了这些函数的具体应用。例如,`sqrt(4)`返回2,`exp(1)`返回约2.718282等。
51 0
|
3月前
R 语言教程 之 R 基础运算 5
本章介绍R语言的基础运算,涵盖简单的算术运算及特殊运算符,如冒号(:)创建数字序列、%in%判断元素是否存在于向量中、%*%进行矩阵乘法等,并通过实例演示这些运算符的使用方法。
56 1
|
3月前
R 语言教程 之 R 基础运算 4
本章《R基础运算》介绍了R语言中的简单运算,重点讲解了赋值运算符的使用方法,包括向左、向右及等于赋值,并通过实例演示了不同赋值方式的效果。
44 1