苯人不生产教程,只是文档的搬运工。本文是基于ggplot2官方文档建立的最简明中文翻译,力图作为一个词典,适合于所有像我一样被ggplot2折磨到夜不能寐辗转反侧的人使用。

详细教程可参考ggplot2 book

1. ggplot2原理简介

ex1

ggplot2绘图有7个组成部分,其中dataMappingLayers是必需的。

1.1 Data

顾名思义,这一层决定你绘图所需的数据来源:

ggplot(data = mpg)

mpg是你的数据集。

1.2 Mapping

这一层决定你的数据如何映射到图像的属性上。

ggplot(mpg, mapping = aes(x = cty, y = hwy))

此命令将mpg数据集中的ctyhwy列分别映射到x和y坐标。

1.3 Layers

这一层即图层,决定你的图像以何种方式被绘制。

ggplot(mpg, aes(cty, hwy)) +
  # 创建散点图
  geom_point() +
  # 拟合并展示趋势线
  geom_smooth(formula = y ~ x, method = "lm")

ex1.3

1.4 Scales

将图上的内容赋予不同的尺度,模板为scale_{aesthetic}_{type}()。根据映射{aesthetic}中的某种属性,按照{type}赋予尺度。

ggplot(mpg, aes(cty, hwy, colour = class)) +
  geom_point() +
  scale_colour_viridis_d()

即根据colour,将图像按照viridis调色板赋予尺度。

ex1.4

1.5 Facets

拆分数据集至不同的面板。

ggplot(mpg, aes(cty, hwy)) +
  geom_point() +
  facet_grid(year ~ drv)

ex1.5

1.6 Coordinates

指定图像的坐标。比如使用coord_fixed()自动设置图像横纵坐标比例。

ggplot(mpg, aes(cty, hwy)) +
  geom_point() +
  coord_fixed()

ex3

1.7 Themes

使用内置的theme_*()函数或theme()设置你的主题。

ggplot(mpg, aes(cty, hwy, colour = class)) +
  geom_point() +
  theme_minimal() +
  theme(
    legend.position = "top",
    axis.line = element_line(linewidth = 0.75),
    axis.line.x.bottom = element_line(colour = "blue")
  )

ex4

2. 绘图基础

所有的图都开始于ggplot(),它提供了数据的来源和映射的方式。随后,你才能用+增加更多的内容。保存图像则使用ggsave()

APIFunction
ggplot()创建新图
aes()构建映射
add_gg();%+%增加组成部分
ggsave()保存图像
qplot();quickplot()快速画图

3. Layers

3.1 Geoms


施工中