ggplot2 快速入门:基础图形作法
一、实验介绍
1.1 实验内容
从课程《R 语言快速入门》 中,我们已经了解过 Hadley Wickham 的 tidyverse 生态链,知道了完整的数据分析大约包括以下流程:
Source: Hadley Wickham, R for Data Science, 2016. 可视化(Visualise)不仅是数据探索(Explore)中至关重要的一个环节,而且充满趣味和成就感(所见即所得)。我们既可以用图形来验证猜想,也可以从图形中发现不为人知的秘密。因此,从基础的可视化工具开始接触数据科学通常是一个不错的选择。本课程即将带你感受 R 最受欢迎的作图工具包 ggplot2
的魅力,为你的数据科学之路奠定一个良好的开端。 通过本课程的学习,你将
- 理解
ggplot2
基本思想和图形语法 - 使用
ggplot2
画出优雅的散点图、折线图、柱状图、箱线图等常用图形
1.2 实验知识点
ggplot2
- 附加变量
- 几何对象
- 统计变换
- 坐标系
1.3 实验环境
- R 3.4.1
- Xfce 终端
1.4 适合人群
本课程难度较小,适合已经掌握 R 基本语法,想了解 ggplot2
作图方法和入门数据科学的朋友。
二、实验内容
2.1 ggplot2
R 语言包含多种作图工具,每种工具自有一套逻辑体系,ggplot2
则凭借它的优雅与灵活受到大部分数据科学家的喜爱。 在 2.1 节中,你将理解 ggplot2
作图的基本思想,拥有一套完整的语法模版,从模版中你将得知一个图形的要素有哪些。此外,如果你只是想迅速获得对数据的直观感受,我们还将介绍简化的作图方法。
2.1.1 基本思想
我们先进入一个实例,一边应用 ggplot2
中的函数,一边探索它的基本思想。 打开桌面上的 Xfce 终端,从云端下载实验所需数据。car.csv
文件中保存了 2011 年中国各地区每百户家用汽车保有量数据。
$ wget http://labfile.oss.aliyuncs.com/courses/978/car.csv
进入 R 环境
$ sudo R
ggplot2
是 tidyverse
生态链的核心 package,因为实验环境中已经安装有 tidyverse
package,所以我们可以直接加载它。如果你是在 RStudio 中操作,记得先用 install.packages()
命令安装 tidyverse
。
> library(tidyverse)
上图中,虚线以上部分是 tidyverse
包含的核心 package,虚线以下部分是 tidyverse
和其它 package 冲突的函数,使用这些函数时需要指明来源。接下来我们使用 tidyverse
中的 read_csv()
函数读取实验数据,并保存在 da 中。
> da <- read_csv('car.csv')
值得注意的是,read_csv()
的结果是一个 tibble 对象,tibble 本质上也是 data frame 的一种,行为观测值,列为变量,但和 R 中常见的 data.frame 不同,它有许多良好的性质。比如,我们想查看 da 变量的结构或者前几行,不需要再用 str()
或 head()
函数,而是直接运行 da 就可以了。tidyverse
中大部分数据都是 tibble 结构。
# 查看 da
> da
从上图中我们可以看到,da 是一个 31 行、6 列的 tibble 对象,它的前 10 行被呈现出来。6 个变量依次为省份(或直辖市)、地区(E 为东部、M 为中部、NE 为东北、W 为西部)、家用汽车每百户平均保有量、人均GDP、城镇人口比重、交通工具消费价格指数,变量类型前两个为 char、后四个为 double。关键信息只需一个小小的命令就能被