跳至主要内容

R 中的箱线图教程

了解 R 中的箱线图,包括它们是什么、何时使用、如何实现,以及它们与直方图有何不同。
· 4分钟 阅读

使用 AI 探索

boxplot() 函数展示数值变量 y 在第二个变量 x 的不同唯一水平之间的分布差异。要想有效,这个第二变量的唯一水平不应过多(例如,10 个或更少较好;远多于此会使图形难以解读)。

boxplot() 函数还包含多个可选参数,本练习要求您使用其中三个以获得信息更丰富的图形:

  • varwidth 允许使用可变宽度的箱线图,以显示各数据子集的大小差异。
  • log 允许对 y 值进行对数变换。
  • las 允许使用更易读的坐标轴标签。

何时应使用箱线图

  • 当您有一个连续变量,并按一个分类变量进行划分时。

  • 当您想比较各类别中该连续变量的分布时。

直方图 vs. 箱线图

  • 下面是直方图与箱线图的对比。中间的线表示分布的中位数。也就是说,一半的君主在此年龄之前开始统治,另一半在此年龄之后开始统治。
histogram vs. box plot
  • 箱线图中的箱体从下四分位数延伸到上四分位数。下四分位数是有四分之一数值位于其下方的点。也就是说,四分之一的君主在此年龄之前开始统治,四分之三在此之后开始。类似地,上四分位数是有四分之三的君主在此年龄以下开始统治的点。上四分位数与下四分位数之差称为四分位距。
histogram vs. box plot 2

水平线称为“须”(whiskers),其定义更为复杂。每根须延伸至四分位距的一点五倍,但最终会限制在能达到的实际数据点处。

下图给出了技术性定义,但在实践中,您可以将须理解为延伸到足以让其之外的任何点都被视为极端值的范围。

histogram vs. box plot 3

如前所述,箱线图的强大之处在于可以一次比较多个分布。此处,王室家族按年代从最早(顶部)到最新(底部)排序。

boxplots

可以看到一个趋势:自十四世纪的金雀花王朝以来,箱体逐渐右移,表明新君主登基的年龄在上升。

戈德温家族和布卢瓦家族仅显示为一条线,因为各自只有一位国王。安茹王朝只有三位国王,形成了只有一侧须的箱体,而非两侧。

请注意,丹麦王室和温莎王室的箱线图上显示了一些点。这些是极端值,即位于须范围之外的数值。温莎王室最左侧的离群点是伊丽莎白二世,她在 26 岁时登基。

boxplot() 函数

在以下示例中,使用公式接口,您将创建一个箱线图,展示 Boston 数据框中数值型 crim 在不同 rad 唯一取值下的分布。然后,使用 varwidth 参数生成可变宽度的箱线图,指定对数变换的 y 轴,并将 las 参数设为 1,以获得横向的 x 轴与 y 轴标签。

最后,使用 title() 函数添加标题 "Crime rate vs. radial highway index"。

# Create a variable-width Box Plot with log y-axis & horizontal labels
boxplot(crim ~ rad, data = Boston,
        varwidth = TRUE, log = "y", las = 1)

# Add a title
title("Crime rate vs. radial highway index")

运行上述代码后,会生成如下结果:

crime rate vs radial highway index

亲自试一试。

如需进一步了解箱线图,请观看我们课程Understanding Data Visualization中的这段视频。

本内容摘自 DataCamp 的 Understanding Data Visualization 课程(作者 Richie Cotton)和我们的 Data Visualization in R 课程(作者 Ronald Pearson)。

主题