跳到主要内容

R箱线图

箱线图(Box Plot),也称为盒须图,是一种用于显示数据分布情况的统计图表。它能够直观地展示数据的中位数、四分位数、异常值等信息,是数据分析和探索性数据分析(EDA)中常用的工具之一。本文将详细介绍如何在R中创建箱线图,并通过实际案例帮助初学者掌握这一技能。

什么是箱线图?

箱线图由五个主要部分组成:

  1. 中位数(Median):数据的中位数,位于箱子的中间。
  2. 四分位数(Quartiles):箱子上下边界分别表示数据的第25百分位数(Q1)和第75百分位数(Q3)。
  3. 箱须(Whiskers):从箱子延伸出的线条,表示数据的分布范围,通常为1.5倍的四分位距(IQR)。
  4. 异常值(Outliers):超出箱须范围的数据点,通常用点表示。

箱线图能够帮助我们快速识别数据的分布、偏态以及异常值。

在R中创建箱线图

在R中,可以使用boxplot()函数轻松创建箱线图。以下是一个简单的示例:

r
# 创建一组随机数据
set.seed(123)
data <- rnorm(100, mean = 50, sd = 10)

# 绘制箱线图
boxplot(data, main = "简单箱线图", ylab = "数值")

代码解释

  • set.seed(123):设置随机种子,确保每次运行代码时生成的随机数据相同。
  • rnorm(100, mean = 50, sd = 10):生成100个服从正态分布的随机数,均值为50,标准差为10。
  • boxplot(data, main = "简单箱线图", ylab = "数值"):绘制箱线图,main参数用于设置图表标题,ylab参数用于设置y轴标签。

输出结果

运行上述代码后,你将看到一个简单的箱线图,展示了数据的分布情况。

分组箱线图

在实际数据分析中,我们经常需要比较不同组别之间的数据分布。R中的boxplot()函数支持分组箱线图的绘制。以下是一个示例:

r
# 创建两组数据
set.seed(123)
group1 <- rnorm(50, mean = 50, sd = 10)
group2 <- rnorm(50, mean = 60, sd = 15)

# 将数据合并为一个数据框
data <- data.frame(
value = c(group1, group2),
group = factor(rep(c("Group 1", "Group 2"), each = 50))
)

# 绘制分组箱线图
boxplot(value ~ group, data = data, main = "分组箱线图", ylab = "数值", xlab = "组别")

代码解释

  • factor(rep(c("Group 1", "Group 2"), each = 50)):创建一个因子变量,用于标识数据所属的组别。
  • boxplot(value ~ group, data = data):使用公式语法绘制分组箱线图,value ~ group表示根据group变量对value进行分组。

输出结果

运行上述代码后,你将看到一个分组箱线图,展示了两个组别的数据分布情况。

实际案例:分析学生成绩

假设我们有一组学生的数学和英语成绩数据,我们希望通过箱线图比较两门课程的成绩分布。

r
# 创建学生成绩数据
set.seed(123)
math_scores <- rnorm(100, mean = 70, sd = 15)
english_scores <- rnorm(100, mean = 65, sd = 10)

# 将数据合并为一个数据框
scores <- data.frame(
score = c(math_scores, english_scores),
subject = factor(rep(c("数学", "英语"), each = 100))
)

# 绘制分组箱线图
boxplot(score ~ subject, data = scores, main = "学生成绩分布", ylab = "分数", xlab = "科目")

代码解释

  • math_scoresenglish_scores:分别表示数学和英语的成绩数据。
  • boxplot(score ~ subject, data = scores):根据科目对成绩进行分组,并绘制箱线图。

输出结果

运行上述代码后,你将看到一个分组箱线图,展示了数学和英语成绩的分布情况。

总结

箱线图是一种强大的数据可视化工具,能够帮助我们快速了解数据的分布、偏态以及异常值。通过R中的boxplot()函数,我们可以轻松创建箱线图,并进行分组比较。希望本文能够帮助你掌握R箱线图的基本用法,并在实际数据分析中加以应用。

附加资源与练习

  • 练习1:使用R内置的mtcars数据集,绘制不同气缸数(cyl)对应的汽车油耗(mpg)的箱线图。
  • 练习2:尝试使用ggplot2包中的geom_boxplot()函数创建箱线图,并比较其与boxplot()函数的异同。
提示

如果你对R数据可视化感兴趣,可以继续学习其他图表类型,如散点图、直方图等,以丰富你的数据分析技能。