R - 直方图:初学者的指南

你好,有抱负的数据巫师们!今天,我们将使用R语言开启一段激动人心的直方图之旅。别担心如果你之前从未编写过一行代码——我将作为你友好的向导,我们会一步步地进行。在本教程结束时,你将能够像一个专业人士一样创建美丽的直方图!

R - Histograms

什么是直方图?

在我们深入研究R之前,让我们先了解一下什么是直方图。想象你是一名老师(就像我一样!),你想看看你的学生在一次考试中的表现。直方图就像条形图,显示了你的数据的分布。它将你的数据分组到“箱”或范围内,并显示每个箱中有多少数据点。

开始使用R

首先,让我们启动R!如果你还没有安装R,请访问R项目网站并按照操作系统的安装说明进行操作。

一旦安装好并运行R,你将看到一个可以输入命令的控制台。这就是魔法发生的地方!

创建你的第一个直方图

让我们从一个简单的例子开始。我们将创建一些考试成绩的直方图。

# 创建一个成绩向量
scores <- c(65, 70, 80, 85, 90, 95, 75, 80, 85, 90)

# 创建直方图
hist(scores)

当你运行这段代码时,你将看到一个基本的直方图出现。很酷吧?让我们分解一下我们做了什么:

  1. 我们创建了一个名为scores的向量,其中包含一些成绩。
  2. 我们使用了hist()函数来创建这些成绩的直方图。

R自动决定了使用多少箱以及每个箱应该覆盖的范围。但如果我们想要对直方图有更多的控制呢?这正是R的魔法所在!

定制你的直方图

指定箱数

我们可以告诉R我们想要的箱数:

hist(scores, breaks = 5)

这将创建一个有5个箱的直方图。尝试不同的数字,看看它如何改变直方图的外观!

添加标题和标签

让我们使我们的直方图更具信息性:

hist(scores,
main = "成绩分布",
xlab = "分数",
ylab = "频率",
col = "天蓝色",
border = "深蓝色")

每个新参数的作用如下:

  • main:给直方图添加标题
  • xlabylab:标签x轴和y轴
  • col:设置条形的颜色
  • border:设置条形边框的颜色

调整X轴和Y轴的范围

有时,你可能想专注于特定范围的数据或调整直方图的刻度。让我们看看我们如何做到:

hist(scores,
xlim = c(60, 100),  # 设置x轴范围
ylim = c(0, 5),     # 设置y轴范围
breaks = seq(60, 100, by = 5))  # 从60到100,每5点创建一个箱

这段代码调整了x轴以显示60到100分的成绩,将y轴设置为最高5,并且每5分创建一个箱。

高级直方图技术

现在你已经掌握了基础知识,让我们探索一些更高级的技术!

添加密度曲线

密度曲线可以帮助可视化数据的分布:

hist(scores,
probability = TRUE,  # 显示密度而不是频率
main = "带有密度曲线的成绩分布")

# 添加密度曲线
lines(density(scores), col = "红色", lwd = 2)

这段代码首先创建了一个显示概率密度的直方图,然后在上面添加了一个平滑的密度曲线。

创建多个直方图

如果你想比较分布呢?让我们为两个班级并排创建直方图:

par(mfrow = c(1, 2))  # 为图表设置1x2的网格

# A班成绩
scores_A <- c(65, 70, 80, 85, 90, 95, 75, 80, 85, 90)
hist(scores_A, main = "A班成绩", col = "浅蓝色")

# B班成绩
scores_B <- c(60, 65, 70, 75, 80, 85, 90, 95, 100, 85)
hist(scores_B, main = "B班成绩", col = "浅绿色")

这段代码设置了两个直方图的并排比较,让你轻松比较分布。

有用的直方图函数

这里有一个我们使用过的函数的便捷表格,还有一些你可能发现有用的额外函数:

函数 描述
hist() 创建基本的直方图
breaks 指定箱数或箱边
main 设置直方图的主标题
xlab, ylab 标签x轴和y轴
col 设置直方图条形的颜色
border 设置条形边框的颜色
xlim, ylim 设置x轴和y轴的范围
density() 计算核密度估计
lines() 在现有图表中添加线条
par() 设置或查询图形参数

结论

恭喜你!你已经迈出了使用R语言进行数据可视化的第一步。记住,创建有效的可视化既是一门艺术,也是一门科学。不要害怕尝试不同的参数并观察它们如何影响你的直方图。

在你继续R语言的旅程中,你会发现直方图只是数据可视化的冰山一角。但它们是一个很好的起点,你在本章学到的技能将在你探索更高级主题时为你提供良好的服务。

继续练习,保持好奇心,快乐编码!在你意识到之前,你将成为向他人传授R语言和数据可视化奥秘的人。

Credits: Image by storyset