如何使用Basic R制作直方图

本文概述

这是R教程系列的第一篇文章, 介绍了如何在R中创建自己的直方图的基础知识。将探讨三个选项:R的基本命令, ggplot2和ggvis。这些职位面向需要可访问且易于理解的资源的初级和中级R用户。

使用基本的R命令制作直方图将是本文的主题。你将在本教程中介绍以下主题:

  • 什么是直方图?
  • 如何使用Basic R制作直方图

想了解更多?在srcmini发现R课程。

什么是直方图?

直方图是数据集分布的直观表示。因此, 直方图的形状是其最明显, 最有用的特征:它使你可以轻松地看到相对大量的数据位于何处, 以及几乎找不到什么数据(Verzani 2004)。换句话说, 你可以看到数据分布中的中间位置, 该中间位置附近数据的距离以及在哪里可以找到异常值。因此, 直方图是了解你的数据的好方法!

但是, 直方图的特定形状到底是什么样的?

简而言之, 直方图由x轴, y轴和不同高度的各种条组成。 y轴显示数据中x轴上的值出现的频率, 而条形图将值的范围或连续类别分组在x轴上。后者解释了为什么直方图在条形图之间没有间隙。

注意, 直方图的条通常被称为” bins”;本教程还将使用该名称。

如何使用Basic R制作直方图

1.向我显示数据

由于直方图需要首先绘制一些数据, 因此可以很好地导入数据集或使用R中内置的数据集。

本教程利用两个数据集:内置的R数据集AirPassengers和一个名为chol的数据集, 它们存储在.txt文件中并可供下载。

在开始使用直方图中的chol之前, 最好借助read.table()函数阅读文本文件:

chol <- read.table(url("http://assets.srcmini02.com/blog_assets/chol.txt"), header = TRUE)

2.熟悉Hist()函数

你可以使用hist()函数简单地制作一个直方图, 该函数计算给定数据值的直方图。你可以将数据集的名称放在该函数的括号之间, 如下所示:

结果为以下直方图:

如何使用Basic R制作直方图2

但是, 如果你只想选择数据框的特定列(例如chol)以制作直方图, 则必须使用hist()函数, 将数据集名称与$符号结合使用, 然后再使用该列名称:

注意, chol数据已经为你加载!

在这段代码中, 你将计算数据帧的列chol中名为chol的数据值的直方图。执行此行代码后, 你将获得以下直方图:

如何使用Basic R制作直方图3

3.将hist()函数提升一个档次

上一节的直方图看起来有些沉闷, 不是吗?

默认的可视化效果通常对理解直方图没有多大帮助。因此, 你需要采取进一步的步骤, 以更好, 更轻松地理解直方图。幸运的是, 这并不太难:R允许使用几种简便快捷的方法来优化图的可视化, 同时仍使用hist()函数。

为了适应直方图, 你只需要向hist()函数添加更多参数, 就像这样:

此代码计算数据集AirPassengers的数据值的直方图, 将其作为”航空乘客的直方图”作为标题, 将x轴标记为” Passengers”, 对垃圾箱给出蓝色边框和绿色, 同时限制x轴从100到700, 将y轴上打印的值旋转1, 并将bin宽度更改为5。

如何使用Basic R制作直方图4

你觉得这串大代码有点不知所措吗?别担心!

以下各节将上述代码块分解为小段, 以查看每个参数(例如main, col, …)的作用。

名称/颜色

你可以通过将main作为参数添加到hist()函数来更改直方图的标题。在这种情况下, 你可以使用标题为”航空旅客的直方图”的航空客机数据集直方图:

如果要调整x轴的标签, 请添加xlab。同样, 你也可以使用ylab标记y轴:

在上面的srcmini Light块中, 你制作了AirPassengers数据集的直方图, 并在x轴和y轴上更改了标签。

如果要更改默认直方图的颜色, 只需添加参数border或col。你可以调整直方图的边框或颜色, 如名称本身一样。在下面的代码块中, 直方图将具有蓝色边框的垃圾箱, 其中绿色填充:

提示:不要忘记将颜色和名称放在””之间。

X和Y轴

通过将xlim和ylim作为参数添加到hist()函数, 更改轴上x和y值的范围:

在上面的代码块中, 直方图的x轴限制为100到700, 而y轴限制为0到30。

请注意, 使用xlim和ylim时, c()函数用于在轴上定界。它有两个值:第一个是开始值;第二个是开始值。第二个是最终值。

你可以通过添加las = 1作为参数来在y轴上旋转标签。 las可以采用以下值:0、1、2或3。

根据选择的选项, 标签的位置将有所不同:如果选择0, 则标签将始终与轴平行(默认设置);否则, 标签将始终与轴平行。如果选择1, 则标签将水平放置。如果要使其垂直于轴, 则选择2;如果要垂直放置, 则选择3。

在这种情况下, 由于将值1传递给las参数, 因此直方图具有水平投影的y值。尝试更改传递给las参数的数量, 然后查看效果!

垃圾箱

你可以通过添加分隔符作为参数以及所需的断点数来更改容器宽度:

上面的srcmini Light块中的代码行的结果直方图有5个断点。

如果你想更好地控制分档之间的断点, 可以通过给它一个断点向量来丰富breaks参数。你可以使用c()函数执行此操作:

换句话说, 作为上述代码的结果的直方图具有bin, 使得它们的范围从100到300、300到500和500到700。

但是, c()函数有时会使你的代码非常混乱。这就是为什么你可以改为添加seq(x, y, z)的原因。 x, y和z的值由你自己确定, 并按出现顺序表示x轴的开始编号, x轴的结束编号以及这些编号出现的间隔。

请注意, 你还可以将两个功能结合在一起:

该直方图在x轴上从100开始, 在200到700的值处, 条带宽度为150。通过查看以下图像或执行srcmini Light块, 来查看这段代码的结果!

如何使用Basic R制作直方图5

提示:尝试seq参数中使用的数字时, 请彻底研究y轴的变化!

请注意, 条形或箱形的不同宽度可能会使人们感到困惑, 并且当你将此技术应用于原始直方图时, 数据中最有趣的部分可能会发现自己没有被突出显示甚至隐藏。因此, 只需尝试一下, 看看最适合你的目的!

额外:概率密度

默认情况下, hist()函数向你显示y轴上某个bin的频率。但是, 如果要查看x轴值间隔出现的可能性, 则需要概率密度而不是频率。因此, 你要询问比例的直方图。你可以通过将freq参数设置为false或将prob参数设置为TRUE来更改此设置:

调用hist()函数创建上述概率密度图后, 你可以随后使用lines()函数将密度曲线添加到数据集中:

请注意, 此函数要求你首先将直方图的prob参数设置为TRUE!

想走得更远吗?

有关可以添加到hist()函数的所有参数的详尽列表, 请查看有关hist()函数的RDocumentation文章。

这是有关使用R创建直方图的三篇文章中的第一篇。下一篇文章涵盖了使用ggplot2创建直方图的内容。

微信公众号
手机浏览(小程序)
0
分享到:
没有账号? 忘记密码?