## 6.3 使用 ggplot 在 R 中绘制
在 R 中有许多不同的绘制数据的工具,但我们将重点关注由名为`ggplot2`的包提供的`ggplot()`函数。ggplot 是非常强大的,但是使用它需要了解它的工作原理。
假设我们要创建一个 _ 散点图 _,该散点图绘制了每个成年人的身高和体重,样本来自 nhanes 数据集的 150 人,不同的标记用于表示男性和女性。首先,我们创建示例:
```r
NHANES_sample <-
NHANES_adult %>%
drop_na(Weight, Gender) %>% #remove rows (individuals) with missing values for Weight and Gender
sample_n(150) #take a random sample of n = 150 rows (individuals)
```
现在让我们设置`ggplot()`命令。这需要我们具体说明两件事。首先,我们需要告诉它从哪个数据帧获取数据(在本例中是`NHANES_sample`)。其次,我们需要通过 _ 美学 _ 函数`aes()`来告诉它要使用的数据框架中的哪些变量。在这种情况下,我们要绘制 X 轴上的高度和 Y 轴上的权重。结果如图[6.4](#fig:emptyPlot)所示:该命令生成一组绘图轴,但实际上没有显示任何数据。
```r
NHANES_sample %>%
ggplot(aes(x = Height, y = Weight))
```
![Empty plot frame generated by ggplot()](https://img.kancloud.cn/d9/76/d9768b718b0576e3fa9dc8ec654fb23e_384x384.png)
图 6.4 由 ggplot()生成的空图框
接下来我们需要添加数据的表示。我们告诉`ggplot`要显示什么的方法是向主`ggplot()`命令添加各种命令。特别是,我们通常需要添加一个 _ 几何体 _ 或“geom”,它指定如何在绘图中排列数据。例如,为了显示每个数据点,我们可以使用`geom_point()`几何图形,如图[6.5](#fig:simpleGeom)所示。每个数据点代表我们的`NHANES_sample`数据集中的一个单独的行,每个行对应于这个数据集中的一个人。
```r
NHANES_sample %>%
ggplot(aes(x = Height, y = Weight)) +
geom_point()
```
![Simple scatter plot](https://img.kancloud.cn/b6/cb/b6cb4f0fc1fbed1ca600779dcf90bfde_384x384.png)
图 6.5 简单散点图
最后,我们要根据不同的性别用不同的颜色绘制点。我们只需在美学中添加一个 _ 颜色 _ 关键字,它告诉`geom_point()`函数按性别分开颜色点。如图[6.6](#fig:colorPoints)所示。这个图还显示了一个示例,说明了如何在一个图中包含多个几何层——在本例中,我们使用`geom_smooth()`分别按性别绘制最能描述身高和体重之间关系的线。线条周围的阴影反映了我们对当时估计的信心。
```r
NHANES_sample %>%
ggplot(aes(x = Height, y = Weight, color = Gender)) +
geom_point() +
geom_smooth(method = "lm")
```
![Scatterplot with points separately colored by Gender.](https://img.kancloud.cn/df/6e/df6e83e3ba81907b2f92103af8460a95_384x384.png)
图 6.6 散点图,各点按性别分别着色。
- 前言
- 0.1 本书为什么存在?
- 0.2 你不是统计学家-我们为什么要听你的?
- 0.3 为什么是 R?
- 0.4 数据的黄金时代
- 0.5 开源书籍
- 0.6 确认
- 1 引言
- 1.1 什么是统计思维?
- 1.2 统计数据能为我们做什么?
- 1.3 统计学的基本概念
- 1.4 因果关系与统计
- 1.5 阅读建议
- 2 处理数据
- 2.1 什么是数据?
- 2.2 测量尺度
- 2.3 什么是良好的测量?
- 2.4 阅读建议
- 3 概率
- 3.1 什么是概率?
- 3.2 我们如何确定概率?
- 3.3 概率分布
- 3.4 条件概率
- 3.5 根据数据计算条件概率
- 3.6 独立性
- 3.7 逆转条件概率:贝叶斯规则
- 3.8 数据学习
- 3.9 优势比
- 3.10 概率是什么意思?
- 3.11 阅读建议
- 4 汇总数据
- 4.1 为什么要总结数据?
- 4.2 使用表格汇总数据
- 4.3 分布的理想化表示
- 4.4 阅读建议
- 5 将模型拟合到数据
- 5.1 什么是模型?
- 5.2 统计建模:示例
- 5.3 什么使模型“良好”?
- 5.4 模型是否太好?
- 5.5 最简单的模型:平均值
- 5.6 模式
- 5.7 变异性:平均值与数据的拟合程度如何?
- 5.8 使用模拟了解统计数据
- 5.9 Z 分数
- 6 数据可视化
- 6.1 数据可视化如何拯救生命
- 6.2 绘图解剖
- 6.3 使用 ggplot 在 R 中绘制
- 6.4 良好可视化原则
- 6.5 最大化数据/墨水比
- 6.6 避免图表垃圾
- 6.7 避免数据失真
- 6.8 谎言因素
- 6.9 记住人的局限性
- 6.10 其他因素的修正
- 6.11 建议阅读和视频
- 7 取样
- 7.1 我们如何取样?
- 7.2 采样误差
- 7.3 平均值的标准误差
- 7.4 中心极限定理
- 7.5 置信区间
- 7.6 阅读建议
- 8 重新采样和模拟
- 8.1 蒙特卡罗模拟
- 8.2 统计的随机性
- 8.3 生成随机数
- 8.4 使用蒙特卡罗模拟
- 8.5 使用模拟统计:引导程序
- 8.6 阅读建议
- 9 假设检验
- 9.1 无效假设统计检验(NHST)
- 9.2 无效假设统计检验:一个例子
- 9.3 无效假设检验过程
- 9.4 现代环境下的 NHST:多重测试
- 9.5 阅读建议
- 10 置信区间、效应大小和统计功率
- 10.1 置信区间
- 10.2 效果大小
- 10.3 统计能力
- 10.4 阅读建议
- 11 贝叶斯统计
- 11.1 生成模型
- 11.2 贝叶斯定理与逆推理
- 11.3 进行贝叶斯估计
- 11.4 估计后验分布
- 11.5 选择优先权
- 11.6 贝叶斯假设检验
- 11.7 阅读建议
- 12 分类关系建模
- 12.1 示例:糖果颜色
- 12.2 皮尔逊卡方检验
- 12.3 应急表及双向试验
- 12.4 标准化残差
- 12.5 优势比
- 12.6 贝叶斯系数
- 12.7 超出 2 x 2 表的分类分析
- 12.8 注意辛普森悖论
- 13 建模持续关系
- 13.1 一个例子:仇恨犯罪和收入不平等
- 13.2 收入不平等是否与仇恨犯罪有关?
- 13.3 协方差和相关性
- 13.4 相关性和因果关系
- 13.5 阅读建议
- 14 一般线性模型
- 14.1 线性回归
- 14.2 安装更复杂的模型
- 14.3 变量之间的相互作用
- 14.4“预测”的真正含义是什么?
- 14.5 阅读建议
- 15 比较方法
- 15.1 学生 T 考试
- 15.2 t 检验作为线性模型
- 15.3 平均差的贝叶斯因子
- 15.4 配对 t 检验
- 15.5 比较两种以上的方法
- 16 统计建模过程:一个实例
- 16.1 统计建模过程
- 17 做重复性研究
- 17.1 我们认为科学应该如何运作
- 17.2 科学(有时)是如何工作的
- 17.3 科学中的再现性危机
- 17.4 有问题的研究实践
- 17.5 进行重复性研究
- 17.6 进行重复性数据分析
- 17.7 结论:提高科学水平
- 17.8 阅读建议
- References