ggplot2图形系统的核心理念是把绘图与数据分离,把数据相关的绘图与数据无关的绘图分离,按图层作图。ggplot2可以把绘图拆分成多个图层,且能够按照顺序创建多重图形。
使用ggplot2包创建图形时,每个图形都是由函数ggplot()创建的,提供绘图的数据和映射:
- 数据(data):数据框对象
- 映射(mapping):由aes()函数来设置映射
由几何对象来控制绘制的几何图形,通过符号“+”来增加图形的元素,这使得绘制图形的过程结构化,同时使绘图更具灵活性。
在ggplot2中, 图形语法中至少包括了如下几个图形部件,每一个部件可以是一个图层:
- 几何对象(geom)
- 统计变换(stats)
- 标度(scale)
- 坐标系(coord)
- 分面(facet)
- 主题(theme)
这些组件之间是通过“+”, 以图层(layer)的方式来粘合构图的,可以这样理解ggplot2中的图层:每个图层可以代表一个图形组件, 这些图形组件以图层的方式叠加在一起构成一个绘图的整体,在每个图层中的图形组件又可以分别设定数据、映射或其他相关参数,因此组件之间又是具有相对独立性的。
在开始正文之前,推荐大家阅读《ggplot2入门与进阶(上)》,这篇文章写的非常好。
一,数据和映射
使用函数ggplot()初始化图形对象,并指定绘制图形的数据集和坐标轴的映射,在ggplot()函数中,指定数据集的默认设置,便于后续图形选项的操作:
ggplot(data = NULL, mapping = aes())
两个重要参数:
- data: 用于指定要用到的数据源,必须使数据框类型
- mapping:使用aes()函数指定每个变量的角色,除x和y之外的其他参数,例如,size、color、shape等,必须采用name=value的形式。
在ggplot中设置的映射是默认映射关系,其他图层中可以继承该映射关系,或修改映射关系。
1,数据
在ggplot2中, 所接受的数据集必须为数据框(data.frame)格式,在下面的小节中,使用数据集mtcars作为ggplot的输入:
library(ggplot2)
data("mtcars")
2,映射
映射是指为数据集中的数据关联到相应的图形属性