• 科研绘图一:箱线图(添加贝赛尔曲线)


    R语言绘图系列—箱线图+贝赛尔曲线

    (一): 科研绘图一:箱线图(添加贝赛尔曲线)


    结果展示

    在这里插入图片描述

    前言

    箱形图又称为盒须图、盒式图、盒状图或箱线图,是一种用作显示一组数据分散情况资料的统计图。因型状如箱子而得名。在各种领域也经常被使用,常见于品质管理,快速识别异常值。箱形图最大的优点就是不受异常值的影响,能够准确稳定地描绘出数据的离散分布情况,同时也利于数据的清洗。


    一、箱线图?

    箱形图(Box-plot)又称为盒须图、盒式图或箱线图,是一种用作显示一组数据分散情况资料的统计图。 用于展示数据的大致分布特征,也用于探索异常值和离群点。平行排列的箱线图可以用于比较在某个分类变量各个类别下某指标的分布。在R语言可以使用函数 ggpubr() 绘制箱线图。
    贝塞尔曲线, 又称贝赛尔曲线(Bézier曲线)是电脑图形学中相当重要的参数曲线。更高维度的广泛化贝塞尔曲线就称作贝塞尔曲面,其中贝塞尔三角是一种特殊的实例。

    二、R语言绘制

    1.R包载入和构建模拟数据

    # 载入R包:
    library(ggplot2)
    library(RColorBrewer)
    library(ggpubr) 
    
    # 构建模拟数据:
    set.seed(2000)
    data <- data.frame(BAI2013 = rnorm(60),
                       class = rep(rep(letters[1:3], each=10),2),
                       treatment = rep(c("elevated","ambient"),each=30),
                       index=rep(seq(1,30),2))
    
    head(data)
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    模拟数据示例:
    
    • 1
    BAI2013classtreatmentindex
    10.9001420aelevated1
    2-1.1733458aelevated2
    3-0.8974854aelevated3
    4-1.4445014aelevated4
    5-0.3310136aelevated5
    6-2.9006290aelevated6

    2.设置颜色模式

    # 设置颜色模式:
    palette <- c(brewer.pal(7,"Set2")[c(4,5)])
    
    • 1
    • 2

    3.使用ggpaired函数绘制箱线图

    # ggpaired是ggpurb包中绘制配对箱线图的函数
    ggpaired(data, x = "treatment", y = "BAI2013",
             fill = "treatment",  # fill指定分组变量:
             palette = palette,  # 颜色
             line.color = "grey50", # 散点连线颜色
             line.size = 0.15,  # 连线粗细
             point.size = 1.5,  # 散点大小
             width=0.6,  # 箱线图宽度
             facet.by = "class",  # 分面变量
             short.panel.labs = FALSE)
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10

    4.添加显著性检验

     stat_compare_means(paired = TRUE)
    
    • 1

    5.设置主题

    theme_minimal()
      theme(strip.background = element_rect(fill="grey90"),
            strip.text = element_text(size=13,face="plain",color="black"),
            axis.title=element_text(size=13,face="plain",color="black"),
            axis.text = element_text(size=11,face="plain",color="black"),
            panel.background=element_rect(colour="black",fill=NA),
            panel.grid=element_blank(),
            legend.position="none",
            legend.background=element_rect(colour=NA,fill=NA),
            axis.ticks=element_line(colour="black"))
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10

    6.保存

    ggsave("boxplot_line.pdf", height = 5, width = 8)
    
    • 1

    三、完整代码

    # 载入R包:
    library(ggplot2)
    library(RColorBrewer)
    library(ggpubr) 
    
    # 构建模拟数据:
    set.seed(2000)
    data <- data.frame(BAI2013 = rnorm(60),
                       class = rep(rep(letters[1:3], each=10),2),
                       treatment = rep(c("elevated","ambient"),each=30),
                       index=rep(seq(1,30),2))
    
    head(data)
    
    # 设置颜色模式:
    palette <- c(brewer.pal(7,"Set2")[c(4,5)])
    
    
    ###### 使用ggpaired函数 ###########
    # ggpaired是ggpurb包中绘制配对箱线图的函数
    ggpaired(data, x = "treatment", y = "BAI2013",
             fill = "treatment",  # fill指定分组变量:
             palette = palette,  # 颜色
             line.color = "grey50", # 散点连线颜色
             line.size = 0.15,  # 连线粗细
             point.size = 1.5,  # 散点大小
             width=0.6,  # 箱线图宽度
             facet.by = "class",  # 分面变量
             short.panel.labs = FALSE)
    # 添加显著性检验:
    stat_compare_means(paired = TRUE)
    # 设置主题:
    theme_minimal()
    theme(strip.background = element_rect(fill="grey90"),
            strip.text = element_text(size=13,face="plain",color="black"),
            axis.title=element_text(size=13,face="plain",color="black"),
            axis.text = element_text(size=11,face="plain",color="black"),
            panel.background=element_rect(colour="black",fill=NA),
            panel.grid=element_blank(),
            legend.position="none",
            legend.background=element_rect(colour=NA,fill=NA),
            axis.ticks=element_line(colour="black"))
    
    ggsave("boxplot_line.pdf", height = 5, width = 8)
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29
    • 30
    • 31
    • 32
    • 33
    • 34
    • 35
    • 36
    • 37
    • 38
    • 39
    • 40
    • 41
    • 42
    • 43
    • 44
  • 相关阅读:
    Python深度学习之路:TensorFlow与PyTorch对比【第140篇—Python实现】
    Mongodb数据库
    基于php开发的外卖订餐网站
    java - IDEA IDE - 设置字符串断点
    e.target和this的区别
    LockSupport与线程中断
    设计模式-行为型-状态模式
    操作系统第一次实验——短作业优先调度算法(SJF)
    Apple Xcode 14 (14A309) 正式版发布(含下载)
    C++学习笔记(Ⅲ):C++核心编程
  • 原文地址:https://blog.csdn.net/chj65/article/details/136763555