library(ggplot2)
library(dplyr)
library(corrgram)
library(GGally)
library(vcd)R语言开卷考试复习:数据管理与绘图
一、考前准备
1. 加载 R 包
本资料使用以下 R 包,和考试要求保持一致。
2. 准备示例数据
这里使用一份简单的学生成绩数据。
后面所有数据管理和绘图都围绕这份数据展开。
student <- data.frame(
id = 1:20,
name = paste0("学生", 1:20),
class = c("一班","一班","一班","一班","一班",
"二班","二班","二班","二班","二班",
"三班","三班","三班","三班","三班",
"四班","四班","四班","四班","四班"),
gender = c("男","女","女","男","女",
"男","女","男","女","男",
"女","男","女","男","女",
"男","女","男","女","男"),
exam_date = c("2024-03-01","2024-03-01","2024-03-02","2024-03-02","2024-03-03",
"2024-03-01","2024-03-02","2024-03-02","2024-03-03","2024-03-03",
"2024-03-01","2024-03-01","2024-03-02","2024-03-03","2024-03-03",
"2024-03-01","2024-03-02","2024-03-02","2024-03-03","2024-03-03"),
chinese = c(88,92,75,81,95,70,84,79,91,73,86,80,94,76,89,82,90,78,85,72),
math = c(90,85,78,88,96,74,82,80,93,70,89,77,95,75,91,84,88,79,86,73),
english = c(86,94,80,83,97,72,85,81,90,76,88,79,96,78,87,80,92,77,84,75),
study_hours = c(3.5,4.2,2.0,3.0,5.0,1.8,3.2,2.5,4.8,2.0,
3.8,2.7,5.2,2.1,4.0,3.0,4.5,2.4,3.6,1.9),
sleep_hours = c(7.5,7.0,8.0,7.2,6.8,8.3,7.4,7.8,6.9,8.1,
7.1,7.6,6.7,8.2,7.0,7.5,6.9,7.9,7.3,8.0),
height = c(170,162,158,175,160,172,165,174,161,176,
159,171,163,173,160,177,164,175,162,178),
weight = c(65,52,50,70,51,68,55,72,53,75,
49,66,54,71,52,76,56,73,55,78)
)
head(student) id name class gender exam_date chinese math english study_hours sleep_hours
1 1 学生1 一班 男 2024-03-01 88 90 86 3.5 7.5
2 2 学生2 一班 女 2024-03-01 92 85 94 4.2 7.0
3 3 学生3 一班 女 2024-03-02 75 78 80 2.0 8.0
4 4 学生4 一班 男 2024-03-02 81 88 83 3.0 7.2
5 5 学生5 一班 女 2024-03-03 95 96 97 5.0 6.8
6 6 学生6 二班 男 2024-03-01 70 74 72 1.8 8.3
height weight
1 170 65
2 162 52
3 158 50
4 175 70
5 160 51
6 172 68
二、数据管理考点
1. 日期值
考点说明
日期值常考:
- 把字符型日期转成日期型;
- 使用
format =指定日期格式; - 区分
%Y和%y; - 提取年、月、日;
- 用
format()改变日期显示方式。
日期格式符号
| 格式符号 | 含义 | 示例 |
|---|---|---|
%Y |
四位年份 | 2024 |
%y |
两位年份 | 24 |
%m |
两位月份 | 03 |
%d |
两位日期 | 01 |
%B |
完整月份名称 | March |
%b |
缩写月份名称 | Mar |
%A |
完整星期名称 | Friday |
%a |
缩写星期名称 | Fri |
注意:
%Y是四位年份,例如2024;%y是两位年份,例如24;%m是月份;%d是日期;%B、%b、%A、%a的显示结果可能受电脑系统语言影响。
示例:日期转换和日期提取
student <- student %>%
mutate(
exam_date = as.Date(exam_date, format = "%Y-%m-%d"),
exam_year = format(exam_date, "%Y"),
exam_month = format(exam_date, "%m"),
exam_day = format(exam_date, "%d"),
exam_weekday = format(exam_date, "%A"),
year_month = format(exam_date, "%Y-%m")
)
head(student) id name class gender exam_date chinese math english study_hours sleep_hours
1 1 学生1 一班 男 2024-03-01 88 90 86 3.5 7.5
2 2 学生2 一班 女 2024-03-01 92 85 94 4.2 7.0
3 3 学生3 一班 女 2024-03-02 75 78 80 2.0 8.0
4 4 学生4 一班 男 2024-03-02 81 88 83 3.0 7.2
5 5 学生5 一班 女 2024-03-03 95 96 97 5.0 6.8
6 6 学生6 二班 男 2024-03-01 70 74 72 1.8 8.3
height weight exam_year exam_month exam_day exam_weekday year_month
1 170 65 2024 03 01 星期五 2024-03
2 162 52 2024 03 01 星期五 2024-03
3 158 50 2024 03 02 星期六 2024-03
4 175 70 2024 03 02 星期六 2024-03
5 160 51 2024 03 03 星期日 2024-03
6 172 68 2024 03 01 星期五 2024-03
考点核心参数说明
| 写法 | 作用 |
|---|---|
as.Date(x, format = "%Y-%m-%d") |
把字符型日期转成日期型 |
format = "%Y-%m-%d" |
原数据是“年-月-日” |
format = "%y-%m-%d" |
原数据是“两位年-月-日” |
format(date, "%Y") |
提取四位年份 |
format(date, "%m") |
提取月份 |
format(date, "%d") |
提取日期 |
format(date, "%A") |
提取完整星期名称 |
format(date, "%Y-%m") |
生成年月变量 |
2. 因子
考点说明
因子用于处理分类变量。
比如:
- 班级;
- 性别;
- 成绩等级。
如果分类变量有顺序,比如“不及格、及格、良好、优秀”,就应该设置为有序因子。
student <- student %>%
mutate(
class = factor(class, levels = c("一班", "二班", "三班", "四班")),
gender = factor(gender),
total = chinese + math + english,
average = round(total / 3, 1),
level = case_when(
average >= 90 ~ "优秀",
average >= 80 ~ "良好",
average >= 70 ~ "及格",
TRUE ~ "不及格"
),
level = factor(level, levels = c("不及格", "及格", "良好", "优秀"), ordered = TRUE)
)
head(student) id name class gender exam_date chinese math english study_hours sleep_hours
1 1 学生1 一班 男 2024-03-01 88 90 86 3.5 7.5
2 2 学生2 一班 女 2024-03-01 92 85 94 4.2 7.0
3 3 学生3 一班 女 2024-03-02 75 78 80 2.0 8.0
4 4 学生4 一班 男 2024-03-02 81 88 83 3.0 7.2
5 5 学生5 一班 女 2024-03-03 95 96 97 5.0 6.8
6 6 学生6 二班 男 2024-03-01 70 74 72 1.8 8.3
height weight exam_year exam_month exam_day exam_weekday year_month total
1 170 65 2024 03 01 星期五 2024-03 264
2 162 52 2024 03 01 星期五 2024-03 271
3 158 50 2024 03 02 星期六 2024-03 233
4 175 70 2024 03 02 星期六 2024-03 252
5 160 51 2024 03 03 星期日 2024-03 288
6 172 68 2024 03 01 星期五 2024-03 216
average level
1 88.0 良好
2 90.3 优秀
3 77.7 及格
4 84.0 良好
5 96.0 优秀
6 72.0 及格
考点核心参数说明
| 写法 | 作用 |
|---|---|
factor(x) |
把变量转成因子 |
levels = c(...) |
指定因子顺序 |
ordered = TRUE |
设置为有序因子 |
case_when() |
根据条件生成分类变量 |
levels(x) |
查看因子水平 |
3. 排序
考点说明
排序常考:
- 按成绩从高到低;
- 按成绩从低到高;
- 先按班级排序,再按成绩排序。
student %>%
arrange(desc(average)) %>%
head() id name class gender exam_date chinese math english study_hours
1 5 学生5 一班 女 2024-03-03 95 96 97 5.0
2 13 学生13 三班 女 2024-03-02 94 95 96 5.2
3 9 学生9 二班 女 2024-03-03 91 93 90 4.8
4 2 学生2 一班 女 2024-03-01 92 85 94 4.2
5 17 学生17 四班 女 2024-03-02 90 88 92 4.5
6 15 学生15 三班 女 2024-03-03 89 91 87 4.0
sleep_hours height weight exam_year exam_month exam_day exam_weekday
1 6.8 160 51 2024 03 03 星期日
2 6.7 163 54 2024 03 02 星期六
3 6.9 161 53 2024 03 03 星期日
4 7.0 162 52 2024 03 01 星期五
5 6.9 164 56 2024 03 02 星期六
6 7.0 160 52 2024 03 03 星期日
year_month total average level
1 2024-03 288 96.0 优秀
2 2024-03 285 95.0 优秀
3 2024-03 274 91.3 优秀
4 2024-03 271 90.3 优秀
5 2024-03 270 90.0 优秀
6 2024-03 267 89.0 良好
考点核心参数说明
| 写法 | 作用 |
|---|---|
arrange(x) |
按 x 升序排列 |
arrange(desc(x)) |
按 x 降序排列 |
arrange(group, desc(x)) |
先按分组排,再按 x 降序排 |
4. 计算变量
考点说明
计算变量就是根据已有变量生成新变量。
本例中:
total:总分;average:平均分;bmi:BMI;pass:是否通过。
student <- student %>%
mutate(
total = chinese + math + english,
average = round(total / 3, 1),
bmi = round(weight / (height / 100)^2, 1),
pass = ifelse(average >= 60, "通过", "未通过")
)
head(student) id name class gender exam_date chinese math english study_hours sleep_hours
1 1 学生1 一班 男 2024-03-01 88 90 86 3.5 7.5
2 2 学生2 一班 女 2024-03-01 92 85 94 4.2 7.0
3 3 学生3 一班 女 2024-03-02 75 78 80 2.0 8.0
4 4 学生4 一班 男 2024-03-02 81 88 83 3.0 7.2
5 5 学生5 一班 女 2024-03-03 95 96 97 5.0 6.8
6 6 学生6 二班 男 2024-03-01 70 74 72 1.8 8.3
height weight exam_year exam_month exam_day exam_weekday year_month total
1 170 65 2024 03 01 星期五 2024-03 264
2 162 52 2024 03 01 星期五 2024-03 271
3 158 50 2024 03 02 星期六 2024-03 233
4 175 70 2024 03 02 星期六 2024-03 252
5 160 51 2024 03 03 星期日 2024-03 288
6 172 68 2024 03 01 星期五 2024-03 216
average level bmi pass
1 88.0 良好 22.5 通过
2 90.3 优秀 19.8 通过
3 77.7 及格 20.0 通过
4 84.0 良好 22.9 通过
5 96.0 优秀 19.9 通过
6 72.0 及格 23.0 通过
考点核心参数说明
| 写法 | 作用 |
|---|---|
mutate() |
新增或修改变量 |
new = x + y |
根据已有变量计算新变量 |
round(x, 1) |
保留 1 位小数 |
ifelse(条件, A, B) |
二分类条件判断 |
case_when() |
多条件分类判断 |
5. 分组汇总
考点说明
分组汇总经常和绘图一起考。
比如先算每个班平均成绩,再画条形图。
class_mean <- student %>%
group_by(class) %>%
summarise(
mean_average = mean(average),
n = n(),
.groups = "drop"
)
class_mean# A tibble: 4 × 3
class mean_average n
<fct> <dbl> <int>
1 一班 87.2 5
2 二班 80 5
3 三班 85.3 5
4 四班 81.7 5
考点核心参数说明
| 写法 | 作用 |
|---|---|
group_by(group) |
按某变量分组 |
summarise() |
对每组进行汇总 |
mean(x) |
计算均值 |
sum(x) |
计算总和 |
n() |
统计每组数量 |
.groups = "drop" |
汇总后取消分组 |
三、绘图考点
1. 均值条形图
考点说明
均值条形图常考两个步骤:
- 先计算每组均值;
- 再用
geom_col()画条形图。
本例:比较四个班的平均成绩。
class_mean <- student %>%
group_by(class) %>%
summarise(
mean_average = mean(average),
.groups = "drop"
)
ggplot(class_mean, aes(x = class, y = mean_average, fill = class)) +
geom_col() +
labs(
title = "不同班级的平均成绩",
x = "班级",
y = "平均成绩"
) +
theme_minimal()考点核心参数说明
| 参数或函数 | 作用 |
|---|---|
group_by(class) |
按班级分组 |
summarise(mean_average = mean(average)) |
计算每班平均成绩 |
.groups = "drop" |
汇总后取消分组,避免后续操作继续受到分组影响 |
aes(x = class, y = mean_average) |
设置横轴和纵轴 |
fill = class |
按班级填充颜色 |
geom_col() |
画条形图,柱高来自数据中的 y 值 |
2. 直方图 + 核密度曲线
考点说明
直方图和核密度曲线用于查看连续变量的分布。
本例:查看学生平均成绩集中在哪些区间。
ggplot(student, aes(x = average)) +
geom_histogram(
aes(y = after_stat(density)),
bins = 8,
fill = "skyblue",
color = "white"
) +
geom_density(color = "red", linewidth = 1) +
labs(
title = "学生平均成绩分布",
x = "平均成绩",
y = "密度"
) +
theme_minimal()考点核心参数说明
| 参数或函数 | 作用 |
|---|---|
aes(x = average) |
指定要看分布的变量 |
geom_histogram() |
画直方图 |
bins = 8 |
设置分组数量 |
aes(y = after_stat(density)) |
把直方图转换为密度尺度 |
geom_density() |
添加核密度曲线 |
3. 盒形图 + 小提琴图
考点说明
盒形图和小提琴图用于比较不同组的数值分布。
- 小提琴图看整体分布形状;
- 盒形图看中位数、四分位数和异常值。
本例:比较不同班级的平均成绩分布。
ggplot(student, aes(x = class, y = average, fill = class)) +
geom_violin(alpha = 0.6) +
geom_boxplot(width = 0.15, fill = "white") +
labs(
title = "不同班级平均成绩分布",
x = "班级",
y = "平均成绩"
) +
theme_minimal()考点核心参数说明
| 参数或函数 | 作用 |
|---|---|
aes(x = class, y = average) |
按班级比较平均成绩 |
geom_violin() |
画小提琴图 |
geom_boxplot() |
叠加盒形图 |
alpha = 0.6 |
设置透明度 |
width = 0.15 |
控制盒形图宽度 |
4. 分组条形图 + 标注
考点说明
分组条形图用于比较两个分类变量组合后的数量。
本例:比较不同班级的男女人数,并加上数字标注。
gender_count <- student %>%
group_by(class, gender) %>%
summarise(
count = n(),
.groups = "drop"
)
ggplot(gender_count, aes(x = class, y = count, fill = gender)) +
geom_col(position = position_dodge(width = 0.8)) +
geom_text(
aes(label = count),
position = position_dodge(width = 0.8),
vjust = -0.3
) +
labs(
title = "不同班级男女生人数",
x = "班级",
y = "人数",
fill = "性别"
) +
theme_minimal()考点核心参数说明
| 参数或函数 | 作用 |
|---|---|
group_by(class, gender) |
按班级和性别分组 |
count = n() |
统计每组人数 |
fill = gender |
按性别填充颜色 |
position_dodge() |
让分组柱子并排显示 |
geom_text(aes(label = count)) |
添加数字标注 |
vjust = -0.3 |
控制文字在柱子上方 |
5. 气泡图
考点说明
气泡图是散点图的扩展。
- x 轴:一个连续变量;
- y 轴:一个连续变量;
- size:用点大小表示第三个变量;
- color:用颜色表示分组变量。
本例:
- x:学习时长;
- y:平均成绩;
- 气泡大小:总分;
- 颜色:班级。
ggplot(student, aes(x = study_hours, y = average, size = total, color = class)) +
geom_point(alpha = 0.7) +
labs(
title = "学习时长、平均成绩和总分的气泡图",
x = "每天学习时长",
y = "平均成绩",
size = "总分",
color = "班级"
) +
theme_minimal()考点核心参数说明
| 参数或函数 | 作用 |
|---|---|
x = study_hours |
横轴是学习时长 |
y = average |
纵轴是平均成绩 |
size = total |
点大小表示总分 |
color = class |
颜色表示班级 |
alpha = 0.7 |
设置透明度 |
6. 散点图矩阵
考点说明
散点图矩阵用于同时查看多个连续变量之间的关系。
这里使用考试要求中的 GGally 包。
ggpairs(
student[, c("chinese", "math", "english", "average")]
)考点核心参数说明
| 参数或函数 | 作用 |
|---|---|
ggpairs() |
画散点图矩阵 |
student[, c(...)] |
选择多个数值变量 |
| 对角线 | 显示单个变量分布 |
| 非对角线 | 显示两个变量之间关系 |
7. 分组散点图
考点说明
分组散点图用于查看两个连续变量之间的关系,同时用颜色或形状区分分组。
本例:
- x:学习时长;
- y:平均成绩;
- color:班级;
- shape:性别。
ggplot(student, aes(x = study_hours, y = average, color = class, shape = gender)) +
geom_point(size = 3) +
labs(
title = "学习时长与平均成绩的关系",
x = "每天学习时长",
y = "平均成绩",
color = "班级",
shape = "性别"
) +
theme_minimal()考点核心参数说明
| 参数或函数 | 作用 |
|---|---|
x = study_hours |
横轴变量 |
y = average |
纵轴变量 |
color = class |
用颜色区分班级 |
shape = gender |
用点形状区分性别 |
geom_point() |
画散点图 |
8. 相关图
考点说明
相关图用于展示多个数值变量之间的相关关系。
这里使用考试要求中的 corrgram 包。
相关系数含义:
- 接近
1:正相关强; - 接近
-1:负相关强; - 接近
0:相关弱。
corrgram(
student[, c("study_hours", "sleep_hours", "average", "bmi")],
order = TRUE,
lower.panel = panel.shade,
upper.panel = panel.pie,
text.panel = panel.txt,
main = "学生变量相关图"
)考点核心参数说明
| 参数或函数 | 作用 |
|---|---|
corrgram() |
绘制相关图 |
student[, c(...)] |
选择参与相关分析的数值变量 |
order = TRUE |
自动调整变量顺序 |
lower.panel = panel.shade |
下三角用颜色深浅表示相关 |
upper.panel = panel.pie |
上三角用饼图表示相关 |
text.panel = panel.txt |
对角线显示变量名 |
9. 马赛克图
考点说明
马赛克图用于查看两个分类变量之间的关系。
这里使用考试要求中的 vcd 包。
本例:查看班级和成绩等级之间的关系。
mosaic(
~ class + level,
data = student,
shade = TRUE,
legend = TRUE,
main = "班级与成绩等级的马赛克图"
)考点核心参数说明
| 参数或函数 | 作用 |
|---|---|
mosaic() |
绘制马赛克图 |
~ class + level |
指定两个分类变量 |
data = student |
指定数据框 |
shade = TRUE |
根据偏离情况添加颜色 |
legend = TRUE |
显示图例 |
10. 修改标尺
考点说明
修改标尺就是控制坐标轴范围和刻度。
常考:
limits:设置坐标轴范围;breaks:设置刻度。
ggplot(student, aes(x = study_hours, y = average)) +
geom_point(color = "steelblue", size = 3) +
scale_x_continuous(
limits = c(1, 6),
breaks = seq(1, 6, 1)
) +
scale_y_continuous(
limits = c(60, 100),
breaks = seq(60, 100, 10)
) +
labs(
title = "修改坐标轴标尺",
x = "每天学习时长",
y = "平均成绩"
) +
theme_minimal()考点核心参数说明
| 参数或函数 | 作用 |
|---|---|
scale_x_continuous() |
修改 x 轴标尺 |
scale_y_continuous() |
修改 y 轴标尺 |
limits = c(1, 6) |
设置坐标轴范围 |
breaks = seq(1, 6, 1) |
设置刻度间隔 |
seq(起点, 终点, 间隔) |
生成刻度序列 |
11. 修改主题
考点说明
主题控制图形整体外观。
常用主题:
theme_minimal();theme_bw();theme_classic()。
ggplot(student, aes(x = study_hours, y = average, color = class)) +
geom_point(size = 3) +
labs(
title = "修改主题示例",
x = "每天学习时长",
y = "平均成绩",
color = "班级"
) +
theme_bw() +
theme(
plot.title = element_text(hjust = 0.5, size = 16),
legend.position = "right"
)考点核心参数说明
| 参数或函数 | 作用 |
|---|---|
theme_minimal() |
简洁主题 |
theme_bw() |
黑白主题 |
theme_classic() |
经典主题 |
plot.title = element_text(hjust = 0.5) |
标题居中 |
legend.position = "right" |
图例放右边 |
12. 条形图加标注
考点说明
条形图加标注常用 geom_text()。
本例:在班级平均成绩条形图上标出具体数值。
ggplot(class_mean, aes(x = class, y = mean_average, fill = class)) +
geom_col() +
geom_text(
aes(label = round(mean_average, 1)),
vjust = -0.3
) +
labs(
title = "班级平均成绩条形图加标注",
x = "班级",
y = "平均成绩"
) +
theme_minimal()考点核心参数说明
| 参数或函数 | 作用 |
|---|---|
geom_text() |
添加文字标注 |
aes(label = round(mean_average, 1)) |
标注均值,保留 1 位小数 |
vjust = -0.3 |
文字放在柱子上方 |
round(x, 1) |
保留 1 位小数 |
13. 参考线加标注
考点说明
参考线常用于标出平均值、标准线、及格线等。
常用函数:
geom_hline():水平参考线;geom_vline():垂直参考线;annotate():添加文字说明。
本例:在散点图中标出全体学生平均成绩。
mean_score <- mean(student$average)
ggplot(student, aes(x = study_hours, y = average)) +
geom_point(color = "steelblue", size = 3) +
geom_hline(
yintercept = mean_score,
linetype = "dashed",
color = "red"
) +
annotate(
"text",
x = 5,
y = mean_score + 2,
label = "全体平均分",
color = "red"
) +
labs(
title = "学习时长与平均成绩:添加参考线",
x = "每天学习时长",
y = "平均成绩"
) +
theme_minimal()考点核心参数说明
| 参数或函数 | 作用 |
|---|---|
geom_hline() |
添加水平参考线 |
yintercept = mean_score |
参考线的 y 轴位置 |
geom_vline() |
添加垂直参考线 |
xintercept = value |
参考线的 x 轴位置 |
linetype = "dashed" |
设置虚线 |
annotate("text", ...) |
添加文字说明 |
x = 5, y = mean_score + 2 |
控制文字位置 |
label = "全体平均分" |
标注文字内容 |
14. 刻面
考点说明
刻面就是把一张图按照某个分类变量拆成多张小图。
常用于分组比较。
常用函数:
facet_wrap(~ group);facet_grid(row_group ~ col_group)。
本例:按照性别分别画学习时长和平均成绩的散点图。
ggplot(student, aes(x = study_hours, y = average, color = class)) +
geom_point(size = 3) +
facet_wrap(~ gender) +
labs(
title = "按性别刻面的散点图",
x = "每天学习时长",
y = "平均成绩",
color = "班级"
) +
theme_minimal()考点核心参数说明
| 参数或函数 | 作用 |
|---|---|
facet_wrap(~ gender) |
按性别拆成多个小图 |
facet_grid(row ~ col) |
按行变量和列变量拆图 |
color = class |
小图内部仍可按班级分颜色 |
四、考试速查总表
1. 数据管理速查
| 考点 | 常用函数 | 作用 |
|---|---|---|
| 日期转换 | as.Date() |
字符型转日期型 |
| 日期显示 | format() |
改变日期显示格式 |
| 因子 | factor() |
设置分类变量 |
| 排序 | arrange() |
升序或降序排列 |
| 计算变量 | mutate() |
新增变量 |
| 条件变量 | ifelse() / case_when() |
按条件生成变量 |
| 分组汇总 | group_by() + summarise() |
按组计算均值、数量等 |
2. 绘图速查
| 图形 | 主要函数 | 关键点 |
|---|---|---|
| 均值条形图 | geom_col() |
先汇总均值 |
| 直方图 + 密度曲线 | geom_histogram() + geom_density() |
看连续变量分布 |
| 盒形图 + 小提琴图 | geom_boxplot() + geom_violin() |
比较分组分布 |
| 分组条形图 + 标注 | geom_col() + geom_text() |
position_dodge() 并排 |
| 气泡图 | geom_point() |
size 表示第三变量 |
| 散点图矩阵 | ggpairs() |
多个连续变量关系 |
| 分组散点图 | geom_point() |
color、shape 分组 |
| 相关图 | corrgram() |
查看相关关系 |
| 马赛克图 | mosaic() |
两个分类变量关系 |
| 修改标尺 | scale_x_continuous() |
控制范围和刻度 |
| 修改主题 | theme_*() |
改外观 |
| 条形图标注 | geom_text() |
添加数值 |
| 参考线标注 | geom_hline() + annotate() |
添加平均线或标准线 |
| 刻面 | facet_wrap() / facet_grid() |
分组拆图 |
3. 考试改代码步骤
- 先判断题目属于哪个考点;
- 找对应小节;
- 把
student改成题目数据框名; - 把
x、y改成题目变量; - 如果要分组均值,先写
group_by()+summarise(); - 如果要分类颜色,用
fill = 分组变量或color = 分组变量; - 如果要数字标注,用
geom_text(); - 如果要参考线,用
geom_hline()或geom_vline(); - 如果要分面,用
facet_wrap()。