4.1 简介
qplot()的局限性在于它只能使用一个数据集和一组图形属性映射,解决这个问题的办法就是使用图层。每个图层可以有自己的数据集和图形属性映射,附加的数据元素可通过图层添加到图形中。
一个图层由五个部分组成:
- 数据:必须是一个数据框;
- 一组图形属性映射,用来设定数据集中的变量如何映射到该图层的图形属性;
- 几何对象,用来指定在图层中用哪种几何对象来绘图;
- 统计变换,返回一个包含新变量的数据框;
- 位置调整,通过调整元素位置来避免图形重合。
4.2 创建绘图对象
当我们调用qplot()时,它其实为我们做了很多幕后工作:创建一个图形对象,添加图层并且展示结果。在整个过程中它使用了很多默认的绘图参数。如果想要手动创建图形对象,就用用到ggplot()函数。只有在新添加的图层里设定了新参数时,默认值才会被修改。
4.3 图层
layer(geom, geom_params, stat, stat_params, data, mapping, position)
p <- ggplot(diamonds, aes(x = carat)) p <- p + layer(geom = "bar", geom_params = list(fill = "steelblue"), stat = "bin", stat_params = list(binwidth = 2)) p
该代码生成一个组距为2,铁青色的直方图。
下面的快捷函数生成与上述代码完全相同的图层。
geom_histogram(binwidth = 2, fill = "steelblue")
所有这类快捷函数都由相同的形式——以geom_或者stat_开头:
- geom_XXX(mapping, data, ..., stat, position)
- stat_XXX(mapping, data, ..., stat, position)
它们的参数定义了图层的各种组件:
- mapping: