23  箱线图

23.1 什么是箱线图?

箱线图又称盒图,是在1977年由美国的统计学家约翰·图基(John Tukey)发明的。它由五个数值点组成:最小值(min),下四分位数(Q1),中位数(median),上四分位数(Q3),最大值(max)。下四分位数、中位数、上四分位数组成一个”带有隔间的盒子”。上四分位数到最大值之间建立一条延伸线,这个延伸线成为”胡须(whisker)“。由于现实数据中总是存在各式各样地”脏数据”,也称为”离群点”,于是为了不因这些少数的离群数据导致整体特征的偏移,将这些离群点单独汇出。

四分位数(quartile)是指在统计学中把所有数值由小到大排列并分成四等份,处于三个分割点位置的数值。四分位数也被称为四分位点,它是将全部数据分成相等的四部分,其中每部分包括 25%的数据,处在各分位点的数值就是四分位数。四分位数有三个,第一个四分位数就是通常所说的四分位数,也被称为下四分位数,第二个四分位数就是中位数,第三个四分位数称为上四分位数,分别用 Q1、Q2、Q3表示。

通过箱线图,在分析数据的时候,能够有效地帮助我们识别数据的特征:直观地识别数据集中的异常值(查看离群点)。判断数据集的数据离散程度和偏向(观察盒子的长度,上下隔间的形状,以及胡须的长度)。

本文我们就来讨论一下箱线图是如何绘制的以及如何对其进行解读。

23.2 绘图前的数据准备

demo数据可以在https://www.bioladder.cn/shiny/zyp/bioladder2/demoData/BoxPlot/boxplot.txt下载。

包含2个维度的数据,通常每一列是个样本,每一行是个基因

23.3 R语言怎么画箱线图

# 加载R包,没有安装请先安装  install.packages("包名") 
library(ggplot2)
library(reshape2)  # 用于转换数据
library(ggsignif)  # 用于添加显著性标签

# 读取箱线图数据文件
df = read.delim("https://www.bioladder.cn/shiny/zyp/bioladder2/demoData/BoxPlot/boxplot.txt",# 这里读取了网络上的demo数据,将此处换成你自己电脑里的文件
                header = T    # 指定第一行是列名
)
# 把数据转换成ggplot常用的类型(长数据)
df = melt(df)

# 绘图
ggplot(df,aes(x=variable,y=value,fill=variable))+
  # stat_boxplot(geom = "errorbar",    # 添加误差线
              #  width=0.3)+
  geom_boxplot(alpha = 1,              # 透明度
               outlier.color = "black" # 外点颜色
               )+
  theme_bw()+                          # 白色主题
  theme(
    axis.text.x = element_text(angle = 90,
                               vjust = 0.5
                               )       # x轴刻度改为倾斜90度,防止名称重叠
  )+
  geom_signif(                         # 添加显著性标签
    comparisons=list(c("Sample1","Sample2"),c("Sample3","Sample4")), # 选择你想在哪组上添加标签
    step_increase = 0.1,
    test="t.test",                     # "t 检验,比较两组(参数)" = "t.test","Wilcoxon 符号秩检验,比较两组(非参数)" = "wilcox.test"
    map_signif_level=F                 # 标签样式F为数字,T为*号
    )

23.4 BioLadder生信云平台在线绘制箱线图

不想写代码?可以用BioLadder生信云平台在线绘制箱线图。

网址:

箱线图-BioLadder生物信息在线分析可视化云平台​www.bioladder.cn/web/#/chart/1

BioLadder目前上线了生物学分析最常用的40多个模块。火山图,热图,气泡图,相关性,韦恩图。。。

23.5 箱线图结果解读

箱子的上下限,分别是数据的上四分位数和下四分位数。这意味着箱子包含了50%的数据。因此,箱子的宽度在一定程度上反映了数据的波动程度。在箱子的上方和下方,又各有一条线代表着最大最小值。箱线图是针对连续型变量的,解读时候重点关注平均水平、波动程度和异常值。当箱子被压得很扁,或者有很多异常的时候,试着做对数变换。