带ggplot的R中条形图的详细指南

5月1日,二千零一十九
通过

(本文首次发表于 学习R编程和建立数据科学事业迈克尔·托思,并对 188bet appR博主

在数据可视化方面,花哨的图表很有趣。相信我,我也很喜欢浮华的 和任何人一样。但如果你想传达信息,尤其是对广大观众来说,浮华并不总是好去处。

是否是线图散点图,或条形图(本指南的主题!),对于大多数读者来说,选择一种理解良好且常见的图形样式通常是一种可行的方法,大部分时间。如果你刚刚开始你的R旅程,在把事情进一步复杂化之前掌握基本知识是很重要的。

所以在本指南中,我要讨论在R中创建一个条形图。金宝搏网址明确地,我会告诉你如何使用格格图 地球酒吧函数创建条形图。

条形图是一种用于显示离散类别之间比较的图表。一个轴——本指南中的X轴——显示了正在比较的类别,另一个轴——我们例子中的Y轴——代表一个测量值。杆的高度与测量值成比例。


把你的生命置于危险中的事物的柱状图

例如,在这个极其科学的条形图中,我们看到了三种不同行动的威胁生命的危险程度。一切危险,可以肯定的是,但我认为我们都能同意这张图表的正确性,它显示了权力的游戏,剧透是最危险的。

ggplot简介

在潜入之前格格图在R中创建条形图的代码,我先简单解释一下格格图为什么我认为这是在R中绘制图形的最佳选择。

格格图是在R中创建图形的包,但它也是一种思考复杂图并将其分解为逻辑亚单位的方法。金宝搏网址

格格图获取图形的每个组成部分-轴,规模,颜色,物体,等等——并且允许您一次按顺序构建一个组件的图形。然后,您可以以一种既灵活又用户友好的方式修改这些组件中的每一个。未指定组件时,格格图使用合理的默认值。这使得格格图在R中创建各种图形的强大而灵活的工具。这是我最近制作的几乎每一张图表的创建工具,我认为你也应该使用它!

与工作簿一起使用

为配合本指南,我创造了一个免费工作簿你可以在阅读过程中运用你所学的知识。

该工作簿是一个R文件,包含本文中显示的所有代码,以及其他指导性问题和练习,以帮助您更深入地理解主题。

如果你真的想学习如何在R中创建一个条形图,这样你就能记住几周甚至几个月后的事情,你需要练习。

所以现在下载工作手册,并在阅读本文时进行练习!

下载免费的GGPlot条形图工作簿!

调查我们的数据集

在本指南中,我们将使用MPG构建在ggplot中的数据集。此数据集包含38种流行车型的燃油经济性数据。让我们看看:


MPG数据集的一个片段

MPG数据集包含11列:

  • 制造商:汽车制造商名称
  • 模型:车型名称
  • 消解:发动机排量(升)
  • :制造年份
  • 共青团:气缸数
  • 反式:传输类型
  • DRV:f=前轮驱动,R=后轮驱动,4=4WD
  • CTY:城市英里/加仑
  • 高压水:公路英里/加仑
  • 外语教学:燃料类型
  • :车辆类型

如何在R中使用地球酒吧

格格图使用地理信息,或几何物体,形成不同类型图形的基础。以前我说过金宝搏网址地磁线关于线图吉姆点对于散点图.今天我要集中精力地球酒吧,用于在R中创建条形图。

图书馆时髦诗格格图MPG +地球酒吧俄歇电子能谱X= 

中心

我们从最简单的开始格格图我们可以使用创建的条形图地球酒吧.让我们更详细地回顾一下:

第一,我们打电话格格图,它创造了一个新的格格图图表。基本上,这将创建一个空白画布,我们将在其上添加数据和图形。这里我们把mpg传给格格图表明我们将使用MPG数据格格图条形图。

下一步,我们添加了地球酒吧呼叫基地格格图创建此条形图。在格格图,你使用+向现有图形添加新层的符号。在第二层,我告诉格格图使用作为条形图的X轴变量。

您会注意到我们这里没有指定Y轴变量。后来,我将告诉您如何修改R中条形图的Y轴。但是现在,只要知道如果你什么都不说,格格图将自动计算数据集中每个X轴类别的出现次数,并将显示计数在y轴上。

就是这样,我们有条形图!我们发现SUV在我们的数据中是最普遍的,其次是小型和中型汽车。

在中更改条形图颜色格格图条形图

在这个例子上展开,让我们改变条形图的颜色!

格格图MPG +地球酒吧俄歇电子能谱X= 填满= “蓝色”

中心

你会注意到这个地球酒吧呼叫与之前的呼叫相同,除了我们已经添加了修饰符填充=蓝色到行尾。用不同的颜色尝试一下,看看这在你的机器上是如何工作的。你可以使用你能想到的大多数颜色名称,或者您可以使用特定的十六进制颜色代码来获得更多的粒度。

如果你熟悉ggplot中的折线图和散点图,你已经看到,在这些情况下,我们通过指定颜色=蓝色,在这种情况下,我们使用填充=蓝色.

在GGTRAP中,颜色用于更改概述对象的,虽然填满习惯于填补内部物体的对于点和线这样的对象,里面没有填充物,所以我们使用颜色更改这些对象的颜色。有了条形图,酒吧可以填满,所以我们使用填满更改颜色的步骤地球酒吧.

这两者之间的区别颜色填满变得更加复杂,所以请跟我一起听更多关于这些如何与ggplot中的条形图一起金宝搏网址工作的信息!

将条形图颜色映射到格格图条形图

现在,让我们尝试一些不同的方法。比较格格图下面的代码就是我们刚才在上面执行的代码。有两个区别。看看你能不能找到他们,猜猜会发生什么,然后向下滚动查看结果。如果你读过我以前的格格图指南,这一点看起来应该很熟悉!

格格图MPG +地球酒吧俄歇电子能谱X= 填满=DRV

中心

此图显示了与以前相同的数据,但现在不再显示纯色条,我们现在看到,这些条形图有3种不同的颜色!红色部分对应四轮驱动汽车,绿色到前轮驱动的汽车,蓝色到后轮驱动的汽车。你注意到我们用来改变图表的两个变化了吗?他们是:

  1. 而不是指定填充=蓝色,我们指定填充=DRV
  2. 我们将填充参数移到AES()圆括号

以前,我们告诉格格图通过添加填充=蓝色对我们GeoMug Bar()打电话。

我们在这里所做的有点复杂。不是为我们的条形图指定一种颜色,我们在说格格图地图中的数据DRV列到填满审美。

这意味着我们要告诉格格图为每个值使用不同的颜色DRV在我们的数据中!此映射还允许格格图知道它还需要创建一个图例来标识驱动器类型,它会自动放在那里!

中有关堆积条形图的详细信息格格图

正如我们在上面看到的,当我们把一个变量映射到填满审美在格格图,它创建了所谓的堆积条形图。堆积条形图是典型条形图的一种变体,其中条形图被划分为若干不同的段。

在这种情况下,我们将条形图按DRV变量,对应前轮,后轮,四轮驱动的汽车。

对于给定的汽车,我们的堆积条形图可以很容易地看到有多少辆车掉进了这三辆车中的每一辆DRV类别。

堆积条形图的主要缺点是,它们的分段数越多,就越难读取。尤其是当试图在x轴上进行比较时(在我们的例子中,跨车)举例说明,下面我们来看一个例子:

#注意,我们将cyl变量转换为一个因子以正确填充格格图MPG +地球酒吧俄歇电子能谱X= 填满= 因素共青团))

中心

正如你所看到的,即使有四段,在x轴上比较不同类别也变得困难起来。例如,我们的数据集中是否有更多的6缸小型货车或6缸皮卡车?5缸的小型金宝搏网址车和5缸微型汽车?用堆积的钢筋,这些类型的比较变得具有挑战性。我的建议是一般避免使用3段以上的堆积条形图。.

G地块中的躲避酒吧

而不是堆积的钢筋,我们可以使用并排(闪避)条形图。在GGTRAP中,这是通过使用位置=位置闪避(参数如下:

#注意,我们在这里将cyl变量转换为一个因子,以便用cylinder填充。格格图MPG +地球酒吧俄歇电子能谱X= 填满= 因素共青团位置=位置回避保存= “单身”

中心

现在,每个类的不同段并排放置,而不是堆叠在一起。

回顾以前的比较,我们可以很快看到,6缸小型货车和6缸皮卡车数量相等。还有等量的5缸压缩机和微型压缩机。

虽然使用躲避条形图比较容易,比较每节课的汽车总数要困难得多。

这给我们带来了一个普遍的观点:不同的图表有不同的用途!你不应该试图在一个图表中完成太多。如果你想把太多的信息塞进一张图表中,你很可能会迷惑你的观众,他们将完全不带走任何信息。

将条形图大小缩放为数据中的变量

到目前为止,我们查看的所有条形图都根据数据集中变量的计数来调整条形图的高度。首先,我们计算了每辆车的数量,然后我们计算每辆车的数量与每个DRV类型。

如果我们不希望酒吧的高度以计数为基础呢?如果数据集中已有一列要用作Y轴高度,该怎么办?假设我们想用图表表示每加仑公路的平均英里数汽车,例如。我们怎么能在ggplot中做到这一点?
我们有两种方法可以做到这一点,我会把它们都复习一遍。开始,我来介绍一下stat='身份'

#使用dpylr按类计算平均hwy_mpg拜厄维普MPG<MPG%%%群组 %%%总结惠威MPG= 意思是高压水格格图拜厄维普MPG +地球酒吧俄歇电子能谱X= Y=惠威MPG斯达= “同一性”

中心

现在我们看到一个图表其中y轴代表每加仑平均公路里程班级。这是怎么工作的?它和我们以前有什么不同?

以前,我们没有指定Y轴变量,而是让格格图自动用数据计数填充Y轴。现在,我们直截了当地说格格图使用惠威MPG作为Y轴变量。这里还有其他一些东西:stat='身份'.那是什么意思?

我们在前面看到,如果省略y变量,格格图将自动将条形图的高度缩放为X轴上每组的事例数。如果我们希望值来自数据框架中的一列,我们需要改变两件事地球酒吧呼叫:

  1. 添加stat='身份'GeoMug Bar()
  2. 添加Y变量映射

单独添加Y变量映射而不添加“身份”导致错误消息:


无统计标识的条形图错误消息

为什么会出错?如果您不指定stat='身份',然后在引擎盖下面,格格图自动传递默认值统计=计数,它按组绘制计数图。Y变量与此不兼容,所以你得到了错误信息。

如果这令人困惑,没关系。现在,你需要记住的是,如果你想使用地球酒吧要在数据集中映射列的高度,你需要添加两个Y变量映射 stat='身份'.

我会诚实的,这对我来说很长一段时间都是非常混乱的。我希望这一指导有助于你理清思路,所以你不必和我一样困惑。但如果你很难记住这一区别,格格图还有一个方便的功能,可以为您完成这项工作。而不是使用地球酒吧具有stat='身份',您可以简单地使用地质公园函数来获得相同的结果。让我们看看:

#使用dpylr按类计算平均hwy_mpg拜厄维普MPG<MPG%%%群组 %%%总结惠威MPG= 意思是高压水格格图拜厄维普MPG +地质公园俄歇电子能谱X= Y=惠威MPG

中心

你会注意到结果和我们上面的图表一样,但我们已经换了地球酒吧具有地质公园并移除stat='身份'.地质公园是一样的地球酒吧具有stat='身份',所以你可以用任何你喜欢的或者更容易理解的。为了我,我已经习惯了地球酒吧,所以我更喜欢用这个,但你可以随心所欲!

重述颜色在里面地球酒吧

上面,我们演示了如何在格格图使用填满选择权。我提到过颜色用于折线图和散点图,但是我们使用填满对于酒吧,因为我们用颜色填充酒吧的内部。这就是说,颜色仍然在这里工作,尽管它只影响相关图形的轮廓。看一看:

格格图MPG +地球酒吧俄歇电子能谱X= 颜色= “蓝色”

中心

这就创建了用标准灰色填充的条形图,但用蓝色勾勒出来。那个提纲是什么颜色影响ggplot中的条形图!

我个人只使用颜色具体来说:修改我已经使用的条形图的轮廓填满创建一个外观更好的图形,并添加一点额外的弹出窗口。标准填满大多数情况下都可以,但是你可以用一个精心挑选的颜色概要:

格格图MPG +地球酒吧俄歇电子能谱X= 填满= “003366”颜色= “AdAd8E6”

中心

这很微妙,但是这个图表使用了更深的海军蓝作为条的填充,而浅蓝色作为轮廓,使条有点弹出。

这是我唯一一次使用颜色对于R中的条形图。你有这个的用例吗?我很想听听,所以请在评论中告诉我!

AES()ggplot中的(美学)映射

我们在上面看到了如何在格格图使用填满参数映射共青团变量或DRV变为条形图中条形图的颜色。格格图将这些映射引用为审美映射,它们包括你看到的一切AES()在里面格格图.

审美映射是一种映射方式数据中的变量特别地视觉属性(美学)图表。

我知道这听起来有点理论化,因此,让我们回顾一下您已经看到的特定美学映射,以及geom_bar中可用的其他映射。

查看风水坝美学映射列表

ggplot条形图的主要美学映射包括:

  • X:将变量映射到X轴上的位置
  • Y:将变量映射到Y轴上的位置
  • 填满:将变量映射到条形图颜色
  • 颜色:将变量映射到条形轮廓颜色
  • 线型:将变量映射到条形轮廓线型
  • 阿尔法:将变量映射到条形透明度

从上面的列表中,我们已经看到了X填满美学映射。我们也看到了颜色在前面的示例中用作更改条形轮廓的参数。

我不想再回顾这篇文章中的附加美学,但如果你想了解更多细节,请查看免费的手册,其中更详细地包含了这些美学的一些例子!

下载免费的GGPlot条形图工作簿!

美学映射与ggplot中的参数

我经常从我的R培训客户那里听到,他们对ggplot中美学映射和参数之间的区别感到困惑。就个人而言,当我第一次在ggplot中学习图形时,我也很困惑。金宝搏网址让我试着消除一些困惑吧!

上面,我们看到我们可以使用填满以两种不同的方式地球酒吧.第一,我们可以通过指定填充=蓝色 外部我们的AES()映射。然后,我们能够地图变量DRV通过指定填充=DRV 里面我们的AES()映射。

这两种工作方式有什么区别填满还有其他的美学映射?

当你包括填满颜色,或者另一种美学里面AES()你的格格图代码,你在说格格图将变量映射到图形中的美学。这就是我们说的填充=DRV上面用不同的颜色填充不同的驱动器类型。

您所看到的每个美学映射也可以用作参数,也就是说,在AES()美学映射。你知道怎么做了填满当我们把条形图变成蓝色时,填充=蓝色.你也看到了当我们使用特定的颜色时,我们如何用特定的颜色勾勒出线条的轮廓。color='添加8e6'.

每当你试图把数据中的一个变量映射到你的图表中的一个美学上时,您要指定里面AES()功能.每当你试图在你的图表中硬编码一个特定的参数(使条变蓝,例如,您要指定在外面AES()功能.我希望这有助于消除您对美学映射和参数之间的区别的任何混淆!

ggplot中美学映射和参数的常见错误

当我第一次学习r和ggplot的时候,美学映射之间的差异(包括里面你的AES())和参数(其中外部你的AES())总是让我困惑。幸运的是,随着时间的推移,你会发现这是第二天性。但与此同时,我可以帮助您在这个过程中加速一些常见的错误,您可以密切关注。

尝试包含美学映射外部你的AES()呼叫

如果你想绘制DRV变量到填满,你应该包括填充=DRVAES()你的地球酒吧打电话。如果你不小心把它放在外面会怎么样?取而代之的是运行ggplot(mpg)+geom_bar(aes(x=等级)填充=DRV)?您将收到如下错误消息:


ggplot geom_bar错误消息

每当您看到关于找不到对象的错误时,金宝搏网址一定要检查一下你是否包含了你的美学映射里面这个AES()打电话!

正在尝试指定参数里面你的AES()呼叫

另一方面,如果我们尝试包含一个特定的参数值(例如,填充=蓝色里面AES()映射,这个错误不太明显。看一看:

格格图MPG +地球酒吧俄歇电子能谱X= 填满= “蓝色”

中心

在这种情况下,格格图实际上会产生一个条形图,但这不是我们想要的。

首先,我们的条形图中的条形图都是红色的,而不是我们希望看到的蓝色!也,在我们的条形图的侧面有一个传说,简单地说“蓝色”。

这是怎么回事?在引擎盖下,格格图已获取字符串“blue”,并创建了一个新的隐藏数据列,其中每个值都简单地表示“blue”。然后,它的映射那个专栏到填满美学的,就像我们以前看到的那样填充=DRV.这将导致图例标签和正在设置的所有条形图的颜色,不要忧郁,但是默认的颜色格格图.

如果这令人困惑,现在还可以。记住:当你遇到这样的问题时,再次检查以确保包含图形的参数外部你的AES()打电话!

现在您应该对如何使用格格图条形图功能,地球酒吧

巩固你的理解

尝试一些你已经学会的东西来巩固你的理解。你可以下载我的免费工作簿用本文中的代码自己完成。

我发现独自完成代码是我学习新主题的最佳方式,这样当我将来需要自己做事情时,我就能真正记住它们。

下载免费的GGPlot条形图工作簿!

留下评论作者,请关注他们博客上的链接和评论: 学习R编程和建立数据科学事业迈克尔·托思.

188bet appR博客提供 每日电子邮件更新金宝搏网址 R新闻与 教程关于以下主题: 数据科学大数据, r作业,可视化(可视化) GGPROTT2箱形图地图动画)程序设计(程序) 演播室斯威夫特乳胶SQL日食吉特哈多普刮网)统计 回归主成分分析时间序列交易还有更多…



如果你走这么远,为什么不 订阅更新 从站点?选择您的口味: 电子邮件推特1188bet app,或 脸谱网

注释已关闭。

搜索R-Blo188bet appggers


赞助商

千万不要错过更新!
订阅R-Bloggers188bet app接收
最新R帖子的电子邮件。
(您将不再看到此消息。)

单击此处关闭(此弹出窗口将不再出现)