English · PDF 60
在前面的章节中,你学到的远不止如何绘制散点图、条形图和箱线图。你学到了一个基础,可以用它配合 ggplot2 绘制任何类型的图形。为了说明这一点,让我们在代码模板中加入位置调整、统计变换、坐标系和分面:
ggplot(data = <DATA>) +
<GEOM_FUNCTION>(
mapping = aes(<MAPPINGS>),
stat = <STAT>,
position = <POSITION>
) +
<COORDINATE_FUNCTION> +
<FACET_FUNCTION>
我们的新模板包含七个参数,即模板中出现在方括号里的词。在实践中,你很少需要提供全部七个参数来绘制图形,因为除了数据、映射和几何函数之外,ggplot2 会为其他所有内容提供有用的默认值。
模板中的七个参数构成了图形语法(grammar of graphics),这是一套用于构建图形的形式化系统。图形语法基于这样一个洞见:任何图形都可以唯一地描述为一个数据集、一个几何对象、一组映射、一个统计变换、一个位置调整、一个坐标系和一个分面方案的组合。
为了理解这是如何工作的,考虑一下你如何从零开始构建一个基本图形:你可以先从一个数据集开始,然后将其转换为你想要展示的信息(通过统计变换):
从 diamonds 数据集开始
使用 stat_count() 为每个切工(cut)取值计算计数。
| 克拉 | 切工 | 颜色 | 净度 | 深度 | 台面 | 价格 | x | y | z |
|---|---|---|---|---|---|---|---|---|---|
| 0.23 | 理想 | E | SI2 | 61.5 | 55 | 326 | 3.95 | 3.98 | 2.43 |
| 0.21 | 优质 | E | SI1 | 59.8 | 61 | 326 | 3.89 | 3.84 | 2.31 |
| 0.23 | 良好 | E | VS1 | 56.9 | 65 | 327 | 4.05 | 4.07 | 2.31 |
| 0.29 | 优质 | I | VS2 | 62.4 | 58 | 334 | 4.20 | 4.23 | 2.63 |
| 0.31 | 良好 | J | SI2 | 63.3 | 58 | 335 | 4.34 | 4.35 | 2.75 |
| ... | ... | ... | ... | ... | ... | ... | ... | ... | ... |
stat_count()
| 切割 | 计数 | 比例 |
|---|---|---|
| 一般 | 1610 | 1 |
| 好 | 4906 | 1 |
| 很好 | 12082 | 1 |
| 优质 | 13791 | 1 |
| 理想 | 21551 | 1 |