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 设置直方图的主标题
xlabylab 给x轴和y轴添加标签
col 设置直方图条的颜色
border 设置条边框的颜色
xlimylim 设置x轴和y轴的范围
density() 计算核密度估计
lines() 在现有图表中添加线条
par() 设置或查询图形参数

结论

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

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

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

Credits: Image by storyset