1.ggplot2——简介
1简介
1.1欢迎使用ggplot2
ggplot2 是一个用来绘制统计图形或数据图形的 R 包。与大多数其他图形软件包不同,ggplot2 具有基于图形语法的底层语法构建,它允许您通过组合不同的组件来组合图形。这使得 ggplot2 作图功能非常的强大。您可以针对您的特定问题而绘制想要展现的图形,而不仅仅局限于一组预定义的图形。
ggplot2 提供了漂亮、轻松的绘图,可以处理繁琐的细节,例如绘制图例。事实上,其精心选择的默认设置意味着您可以在几秒钟内制作出出版质量的图形。但是,如果您确实有特殊的格式要求,ggplot2 的综合主题系统可以让您轻松完成所需的工作。最终,这意味着与其花时间让图表看起来漂亮,不如专注于创建最能揭示数据中信息的图表。
学习语法不仅可以帮助您创建熟悉的图形,还可以启发你创作出更佳的方案。没有语法,就没有基础理论,因此大多数图形包是各种情况的组合。例如,在R的基础包中,如果您设计一个新图形,它由原始绘图元素(如线和点)组成,因此很难设计与现有绘图相结合的新组件。在 ggplot2 中,用于创建新图形的表达式由更高级别的元素组成,例如原始数据和统计转换的表示,可以轻松地与新数据集和其他绘图组合。
1.2 什么是图形的语法?
Wilkinson创建了图形语法来描述构成所有统计图形基础的基本特征。该语法回答了“什么是统计图形”这一问题。ggplot22建立在威尔金森语法的基础上,专注于层的首要地位,并将其用于R中。简而言之,语法告诉我们,图形将数据映射到几何对象(geom 点、线、条)的图形属性(aes 颜色、形状、大小)。plot也可能包括关于plot坐标系统的数据和信息的统计转换。分面(facet )可用于绘制数据的不同子集。这些独立组件的组合构成了一个图形。
所有绘图均由数据、可视化的信息和映射(数据变量如何映射到图形属性的描述)组成。有五个映射组件:
-
图层(layer)是几何对象和统计变换组成。几何对象(Geometric elements)以下简称geom,代表你的实际看到的图形元素:点,线,多边形等。统计变换(Statistical transformations)以下简称stat,指对数据进行某种汇总:例如,对观测值分箱和计数创建直方图,或拟合线性模型。
-
标度(Scales) 将数据空间中的值映射到图形空间中。这包括使用颜色、形状或大小。Scales 还绘制图例和轴,这使得可以从图中读取原始数据值(逆映射)。
-
坐标系(coord)描述数据的坐标如何映射到图形的平面。它还提供轴和网格线来帮助阅读图形。我们通常使用笛卡尔坐标系,但也可以使用许多其他坐标系,包括极坐标和地图投影。
-
分面(facet)描述如何将数据分解为各个子集以及如何对子集作图并合并展示。这也称为条件作图或栅栏作图。
-
主题(theme)控制图形显示的细点,如字体大小和背景颜色。虽然 ggplot2 中的默认值是精心设计的,但您可能需要查阅其他参考资料从而创建有吸引力的绘图。可以学习Tufte的早期作品
同样重要的是要注意语法不做的事情:
1.3 安装
在使用之前,请安装好以下软件:
-
R : 如果你还没有安装 R,可以参照R for Data Science安装使用。
-
RStudio:RStudio 是 R 的免费开源集成开发环境 (IDE)。虽然您可以在任何 R 环境(包括 R GUI 和ESS)中编写和使用 R 代码,但 RStudio 具有一些专门用于编写和调试代码的出色功能. 我们建议您尝试一下,但使用 ggplot2 或本书不一定要成功。您可以从https://www.rstudio.com/products/rstudio/download下载 RStudio 到桌面
-
R 包:推荐使用的 R 包。通过以下代码一次性安装:
install.packages(c( "directlabels", "dplyr", "gameofthrones", "ggforce", "gghighlight", "ggnewscale", "ggplot2", "ggraph", "ggrepel", "ggtext", "ggthemes", "hexbin", "Hmisc", "mapproj", "maps", "munsell", "ozmaps", "paletteer", "patchwork", "rmapshaper", "scico", "seriation", "sf", "stars", "tidygraph", "tidyr", "wesanderson" ))
1.4 其他资源
如果你想更加深入的了解 ggplot2 语法的元素以及它们如何组合在一起,可以参阅以下文档。
有关 ggplot2 函数及其参数的详细细节可以在线访问,https://ggplot2.tidyverse.org/reference/index.html,并使用 R 中帮助(?...)访问。在线文档的优点是您可以查看所有示例图并更轻松地切换。
如果您经常使用 ggplot2,最好注册 ggplot2 邮件列表http://groups.google.com/group/ggplot2。该列表的流量相对较低,对新用户非常友好。另一个有用的资源是 stackoverflow,http://stackoverflow.com。stackoverflow 上有一个ggplot2 社区,很多常见的问题已经有人提出并解决了。
ggplot2 中的函数数量可能非常多,但 RStudio 提供了一些很棒的目录,可以在http://www.rstudio.com/resources/cheatsheets/ 上快速记忆。