R - 盒型图:初学者的数据分布可视化指南
Hello there, aspiring data wizards! Today, we're going to embark on an exciting journey into the world of boxplots using R. Don't worry if you've never coded before – I'll be your friendly guide, and we'll take this step-by-step. By the end of this tutorial, you'll be creating beautiful boxplots like a pro!
盒型图是什么?
在我们深入代码之前,让我们了解一下什么是盒型图。想象你正在尝试总结你班上所有学生的身高。盒型图就像是一个小巧的盒子,可以让你一眼看出数据的分布。它是查看数据的中位数、四分位数以及异常值的绝佳方式。
创建你的第一个盒型图
设置你的R环境
首先,让我们确保我们准备好使用R。如果你还没有安装R,请前往R的官方网站,并按照你操作系统的安装说明进行操作。
一旦安装了R,打开你的R控制台或RStudio(如果你在使用它的话)。我们现在准备创建盒型图!
基本盒型图语法
在R中创建盒型图的基本语法出奇地简单。它的样子如下:
boxplot(data)
让我们用一些真实的数据来尝试一下。我们将使用内置的mtcars
数据集,它包含各种汽车模型的信息。
# 创建一个基本的汽车里程数盒型图
boxplot(mtcars$mpg)
当你运行这段代码时,你会看到一个盒型图出现。让我们分解一下你所看到的:
- 盒子中间的粗黑线是中位数。
- 盒子底部的位置代表第一四分位数(25%的数据低于这个点)。
- 盒子顶部的位置代表第三四分位数(75%的数据低于这个点)。
- 鞭子(从盒子延伸出去的线)显示数据的范围。
- 任何超出鞭子的点都被认为是异常值。
添加颜色和标签
现在,让我们使我们的盒型图更具信息性和视觉吸引力:
# 创建一个更详细的盒型图
boxplot(mtcars$mpg,
main="汽车里程分布",
ylab="每加仑英里数",
col="lightblue",
border="darkblue")
在这个例子中:
-
main
为我们的图表添加了一个标题。 -
ylab
为y轴添加了标签。 -
col
用浅蓝色填充盒子。 -
border
将盒子的轮廓设置为深蓝色。
比较多个组
盒型图的一个优点是能够并排比较不同的组。让我们比较不同气缸数的汽车的里程:
# 比较不同气缸数的汽车里程
boxplot(mpg ~ cyl, data=mtcars,
main="按气缸数划分的汽车里程",
xlab="气缸数",
ylab="每加仑英里数",
col=c("lightgreen", "lightblue", "pink"))
在这里,我们使用公式表示法mpg ~ cyl
,告诉R为cyl
中的每个唯一值创建mpg
的盒型图。我们还为每个组添加了不同的颜色。
带有缺口的盒型图
既然我们已经掌握了基础知识,让我们通过添加缺口来给我们的盒型图增加一点 sophistication。
缺口是什么?
缺口是盒子侧面的一个小凹口。它不仅仅是为了外观 - 它实际上帮助我们比较组之间的中位数。如果两个盒子的缺口不重叠,那么这是一个强有力的证据,表明中位数是不同的。
创建带缺口的盒型图
让我们修改之前的例子来包含缺口:
# 创建带缺口的盒型图
boxplot(mpg ~ cyl, data=mtcars,
main="按气缸数划分的汽车里程",
xlab="气缸数",
ylab="每加仑英里数",
col=c("lightgreen", "lightblue", "pink"),
notch=TRUE)
这里唯一新的参数是notch=TRUE
。这个简单的添加给了我们那些信息性的缺口。
解释带缺口的盒型图
仔细观察缺口。如果两个盒子的缺口不重叠,我们可以确信这些组的真实中位数(中间值)是不同的。这是一种快速可视化的方法,可以发现组之间的显著差异!
定制你的盒型图
既然你已经掌握了基础知识,让我们看看如何使你的盒型图更具信息性和视觉吸引力。
添加单个数据点
有时,在盒型图旁边看到实际数据点是有帮助的。我们可以使用jitter
函数来完成:
# 带有单个点的盒型图
boxplot(mpg ~ cyl, data=mtcars,
main="按气缸数划分的汽车里程",
xlab="气缸数",
ylab="每加仑英里数",
col=c("lightgreen", "lightblue", "pink"),
notch=TRUE)
# 添加抖动点
stripchart(mpg ~ cyl, data=mtcars,
method="jitter",
vertical=TRUE,
add=TRUE,
pch=20,
col="darkgray")
这段代码首先创建盒型图,然后覆盖单个数据点。pch=20
参数使点成为小圆圈,而col="darkgray"
将它们染成深灰色。
改变异常值的外观
默认情况下,盒型图中的异常值显示为简单的点。我们可以改变它们的外观:
# 定制异常值外观
boxplot(mpg ~ cyl, data=mtcars,
main="按气缸数划分的汽车里程",
xlab="气缸数",
ylab="每加仑英里数",
col=c("lightgreen", "lightblue", "pink"),
notch=TRUE,
outpch=8, # 星形异常值点
outcol="red") # 红色异常值
在这里,outpch=8
将异常值点改为星形,而outcol="red"
将它们染成红色。
结论
恭喜你!你刚刚学会了如何在R中创建和定制盒型图。从基本图表到带缺口的比较,甚至添加单个数据点,你现在拥有了一个强大的数据可视化工具。
记住,掌握盒型图(和R)的关键是练习。尝试使用不同的数据集创建盒型图,尝试不同的颜色和样式,最重要的是,享受其中的乐趣!
以下是我们在本文中讨论过的盒型图参数的快速参考表:
参数 | 描述 | 示例 |
---|---|---|
main |
图表的主标题 | main="我的盒型图" |
xlab |
x轴的标签 | xlab="组别" |
ylab |
y轴的标签 | ylab="值" |
col |
盒子的填充颜色 | col="lightblue" |
border |
盒子边框的颜色 | border="darkblue" |
notch |
添加盒子缺口 | notch=TRUE |
outpch |
异常值点的形状 | outpch=8 |
outcol |
异常值点的颜色 | outcol="red" |
快乐绘图,愿你的数据总是被美妙地框起来!
Credits: Image by storyset