📜  R语言中的箱线图(1)

📅  最后修改于: 2023-12-03 14:47:11.908000             🧑  作者: Mango

R语言中的箱线图

箱线图(Box plot)也叫盒须图(box-whisker plot),是用来观察一组数据的离散情况的统计图形。箱线图最主要的功能是直观地展现出一组数据的五数概括(最小值、第一四分位数、中位数、第三四分位数和最大值)、离散点和异常值。

1. 绘制简单的箱线图

绘制简单的箱线图可以使用R中自带的boxplot()函数。boxplot()函数可以接受向量、数据框或矩阵等类型的数据作为输入。下面是使用boxplot()函数绘制一个随机生成的向量的箱线图的代码:

# 生成随机数据
set.seed(123)
data <- rnorm(n = 100, mean = 0, sd = 1)

# 绘制箱线图
boxplot(data)

运行代码后,我们会得到一个简单的箱线图,如下图所示:

image-20210702002243883

从图中可以看出,这组随机数据的中位数(红线)在0左右,第一四分位数(Q1)在-0.5左右,第三四分位数(Q3)在0.5左右,离群值(黑点)没有太多。这个例子比较简单,下面我们将会介绍如何对箱线图进行进一步的定制。

2. 定制箱线图

我们可以对箱线图进行多种定制,包括修改箱体和离群值的颜色、修改轴标签、添加标题和图例等。下面通过一些例子来说明。

(1) 修改箱体和离群值颜色

我们可以使用参数boxfilloutfill来修改箱体和离群值的颜色。下面的代码将箱体颜色设置为绿色,离群值颜色设置为红色:

# 生成随机数据
set.seed(123)
data <- rnorm(n = 100, mean = 0, sd = 1)

# 定制箱线图
boxplot(data, 
        boxfill = "green",  # 箱体颜色
        outfill = "red")    # 离群值颜色

运行代码后,我们会得到一个箱体为绿色、离群值为红色的箱线图,如下图所示:

image-20210702022051831

(2) 修改轴标签

我们可以使用函数labs()来修改轴标签。下面的代码将x轴标签修改为“数据”,y轴标签修改为“值”:

# 生成随机数据
set.seed(123)
data <- rnorm(n = 100, mean = 0, sd = 1)

# 定制箱线图
boxplot(data, 
        xlab = "",      # 取消默认的x轴标签
        ylab = "",      # 取消默认的y轴标签
        main = "Box Plot of Data",  # 添加主标题
        boxfill = "green", 
        outfill = "red")

# 修改x轴和y轴标签
labs(x = "Data", y = "Value")

运行代码后,我们会得到一个带有自定义x轴和y轴标签的箱线图,如下图所示:

image-20210702022318055

(3) 添加标题和图例

我们可以使用函数title()legend()分别添加标题和图例。下面的代码将添加一个上方居中的标题和一个位于右上角的图例:

# 生成随机数据
set.seed(123)
data1 <- rnorm(n = 100, mean = 0, sd = 1)
data2 <- rnorm(n = 100, mean = 1, sd = 1)

# 定制箱线图
boxplot(data1, col = "green3")
boxplot(data2, col = "blue3", add = TRUE)

# 添加标题
title(main = "Box Plot of Data", 
      sub = "Group 1 (green) and Group 2 (blue)")

# 添加图例
legend("topright", 
       legend = c("Group 1", "Group 2"), 
       fill = c("green3", "blue3"))

运行代码后,我们会得到一个带有标题和图例的箱线图,如下图所示:

image-20210702022604623

参考文献
  1. R Graphics: Box Plots