数据准备
本示例数据是自编数据,仅为练习所用,数据结构假设为,两个年份year(2020,2021),两个氮水平nitrogen(N1,N2),两个玉米品种variety(a,b)测定了5个试验指标(变量v1,v2,v3,v4,v5),每个处理3次重复block(1,2,3)。
library(tidyverse) # 调用tidyverse。
df <- read_csv(file = "df.csv") # 导入数据。文档在工作目录下,所以直接给文件名导入。
df # 查看数据。
## # A tibble: 24 × 9
## year nitrogen variety block v1 v2 v3 v4 v5
## <dbl> <chr> <chr> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl>
## 1 2020 N1 a 1 1.26 2.14 0.4 5 3.25
## 2 2020 N1 a 2 1.2 2.9 0.1 5.3 1.27
## 3 2020 N1 a 3 1.3 3 0.3 5.6 2.24
## 4 2020 N1 b 1 1.08 1.72 1.8 2.8 1
## 5 2020 N1 b 2 1.05 1.65 1.7 2.5 3.12
## 6 2020 N1 b 3 1.15 1.35 1.5 3.1 4.57
## 7 2020 N2 a 1 1.32 3.78 1.6 6 5.85
## 8 2020 N2 a 2 1.28 4.32 1.4 6.1 6.48
## 9 2020 N2 a 3 1.35 3.95 1.3 6.2 7.21
## 10 2020 N2 b 1 1.33 3.47 2.8 4.1 6.56
## # … with 14 more rows
7.1.3 图形属性设定和映射
前面学习了ggplot2构图的三要件(数据、映射、几何对象),有了三个要件就可以画出一幅基本的图。可实际作图时,我们往往需要根据自身需求设定图形的属性。
图形属性 是图中对象的可视化属性,包括数据点的大小、形状和颜色等。
通过将图形属性映射为数据集中的变量,可以以不同的方式传达出数据的相关信息。
ggplot2是以图层进行图形的构建,而一个图层里设定的图形属性映射只对该图层起作用;
数据和映射的关系:映射控制了数据变量和图形属性之间的关系。除过将图形属性映射到数据变量外,还可以在图层的参数设置里将参数设定为单一值。图形属性可以根据数据观测的不同而变化,但是图层参数设定则不行。
标度负责控制映射后图形属性的显示方式。标度和映射是紧密相关的概念。
下面以实例体会一下图层设定和映射的关系。
ggplot(df, aes(x = v3, y = v4)) + geom_point() # 三要件绘制基本散点图。

image.png
ggplot(df, aes(x = v3, y = v4)) + geom_point(colour = "red") # 这里设置颜色是在几何对象中完成的,是在图层中进行了参数设定。

image.png
ggplot(df, aes(x = v3, y = v4)) + geom_point(aes(colour = "red")) # 这里是在几何对象图层中将颜色映射为红色。

image.png
ggplot(df, aes(x = v3, y = v4, colour = nitrogen)) + geom_point()
# 将数据中的v3和v4分别映射给x轴和y轴,将数据中的分类变量nitrogen映射给颜色。
ggplot(df, aes(x = v3, y = v4)) + geom_point(aes(colour = nitrogen)) # 同上。

image.png

image.png
图2和3很好的反映了设定和映射的区别。你可以试试ggplot(df, aes(x = v3, y = v4)) + geom_point(colour = nitrogen)代码。看看有什么效果。有时候错误的代码反而能起到很好的学习效果。
参考资料
- R语言编程—基于 tidyverse,张敬信,人民邮电出版社(待出版),2022.
- R语言教程,李东风,https://www.math.pku.edu.cn/teachers/lidf/docs/Rbook/html/_Rbook/index.html
- 《R数据科学》,人民邮电出版社,2018.