R语言绘图丨论文中最常用箱线图绘制教程,自动进行显著性检验和误差线标注

多组比较式箱线图

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

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

  • 数据分布信息:

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

  • 离群值检测:

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

  • 比较分组数据:

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

  • 可视化简洁性:

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

箱线图的绘制方法

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

本文由mdnice多平台发布

  • 4
    点赞
  • 21
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
R语言,可以使用ggplot2包来绘制多个箱线图。首先,需要载入相应的包和数据。通过使用ggplot函数创建绘图对象,并指定数据集和x、y轴变量。然后,可以使用geom_boxplot函数绘制箱线图,并通过fill参数指定组别的填充颜色。下面是一个示例代码: ```R # 载入相关包和数据 library(ggplot2) library(ggpubr) # 创建绘图对象 p <- ggplot(df, aes(x = group, y = value)) # 绘制箱线图 p + geom_boxplot(fill = "lightblue") # fill参数可以指定填充颜色 ``` 这样,就可以绘制出多个箱线图,每个箱线图代表一个组别。其,group变量表示组别,value变量表示数据值。可以根据具体需要,调整绘图的其他参数和样式,如调整箱线图的宽度等。 请注意,代码的df是一个示例数据集,你可以根据自己的需要替换成你自己的数据集。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* [基于OpenGL的计算机图形学实验NURBS曲线算法](https://download.csdn.net/download/weixin_53249260/88236784)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] - *2* *3* [R语言绘图论文常用箱线图绘制教程自动进行显著性检验误差线标注](https://blog.csdn.net/ZaoJewin/article/details/131550937)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

生信分析笔记

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值