1.1简介
ggplot2是R中功能较全的绘图工具,实现了图形语法。它是tidyverse的一个核心R包,可以运行以下代码来加载tidyverse:
library(tidyverse)
#── Attaching packages ────────────── tidyverse 1.3.2 ──
#✔ ggplot2 3.3.6 ✔ purrr 0.3.4
#✔ tibble 3.1.8 ✔ dplyr 1.0.10
#✔ tidyr 1.2.1 ✔ stringr 1.4.1
#✔ readr 2.1.2 ✔ forcats 0.5.2
#── Conflicts ───────────────── tidyverse_conflicts() ──
#✖ dplyr::filter() masks stats::filter()
#✖ dplyr::lag() masks stats::lag()
这一行代码加载了tidyverse的核心R包,在数据分析中十分常用。
可以使用package::function()来明确指出某个函数的来源,比如ggplot2::ggplot()明确指出了我们使用的是ggplot2包中的ggplot()函数。
1.2第一步
使用一张图来回答问题:大引擎汽车比小引擎汽车更耗油吗?
1.2.1 mpg数据框
数据框是变量(列)和变量(行)的矩形集合。mpg包含了美国环境保护协会收集的38种车型的数据。
> mpg
# A tibble: 234 × 11
manufact…¹ model displ year cyl trans drv cty
<chr> <chr> <dbl> <int> <int> <chr> <chr> <int>
1 audi a4 1.8 1999 4 auto… f 18
2 audi a4 1.8 1999 4 manu… f 21
3 audi a4 2 2008 4 manu… f 20
4 audi a4 2 2008 4 auto… f 21
5 audi a4 2.8 1999 6 auto… f 16
6 audi a4 2.8 1999 6 manu… f 18
7 audi a4 3.1 2008 6 auto… f 18
8 audi a4 q… 1.8 1999 4 manu… 4 18
9 audi a4 q… 1.8 1999 4 auto… 4 16
10 audi a4 q… 2 2008 4 manu… 4 20
# … with 224 more rows, 3 more variables: hwy <int>,
# fl <chr>, class <chr>, and abbreviated variable
# name ¹manufacturer
# ℹ Use `print(n = ...)` to see more rows, and `colnames()` to see all variable names
mpg中包括以下变量:
displ:引擎大小,单位为升
hwy:汽车在高速公路上行驶时的燃油效率,单位为英里/加仑(mpg)
1.2.2创建ggplot图形
为了绘制mpg的图形,运行以下代码将displ放在x轴,hwy放在y轴:
ggplot(data = mpg)+
geom_point(mapping = aes(x=displ,y=hwy))
上图显示出引擎大小(displ)和燃油效率(hwy)之间是负相关关系。换句话说,大引擎汽车更耗油。
在ggplot2中,可以使用ggplot()函数开始绘图。ggplot()创建了一个坐标系,可以在上面添加图层。ggplot()的第一个参数是要在图中使用的数据集。ggplot(data=mpg)会创建一张空白图。
向ggplot()中添加一个点层,就可以创建一张散点图。ggplot2中包含了多种几何对象函数,美中函数都可以向图中添加不同类型的图层。
每个几何对象函数都有一个mapping参数,定义了如何将数据集中的变量映射为图形属性。mapping参数总是与aes()函数成对出现,aes()函数中的x参数和y参数分别指映射到x轴和y轴的变量。