Tidyverse自学笔记-初识ggplot2

数据准备
本示例数据是自编数据,仅为练习所用,数据结构假设为,两个年份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 ggplot2绘图

7.1 认识ggplot2

ggplot2是由Hadley Wickham开发的最流行的R可视化包。
ggplot2中的gg 表示图形语法(Grammar of Graphics),这是一个通过使用“语法”来绘图的图形概念。

7.1.1 构图基本要素

ggplot2语法的10大部件:

  • 数据(data)
  • 映射(mapping)
  • 几何对象(geom)
  • 标度(scale)
  • 统计变换(stats)
  • 坐标系(coord)
  • 位置调整(Position adjustments)
  • 分面(facet)
  • 主题(theme)
  • 输出(output)

ggplot2作图必须的3个要件是数据、映射、几何对象。

来认识一下三要素。

数据(Data)
用于绘图的数据,需要是整洁的数据框。如本文中的df数据集。

映射(mapping)
将数据集中的变量数据映射 (关联)到相应的图形属性,也称为"美学映射"或"美学"。
指明了变量与图形所见元素之间的联系,告诉 ggplot图形元素想要关联哪个变量数据。映射函数为aes()。
常用映射:

  • x:x轴
  • y:y轴
  • color:颜色
  • size:大小
  • shape:形状
  • fill:填充
  • alpha:透明度

几何对象(Geometric)
每个图形都是采用不同的视觉对象来表达数据,称为几何对象。ggplot2提供了50余种几何对象,几何对象对应的函数命名方式为geom_xxx()。常见几何对象如下。

  • geom_point():散点图
  • geom_line():折线图
  • geom_smooth():光滑 (拟合)曲线
  • geom_bar()/geom_col():条形图
  • geom_histogram():直方图
  • geom_density():概率密度图
  • geom_boxplot():箱线图
  • geom_abline():参考直线

三个主要部件即可形成图形,其他部件的设置可完成对图的修饰。
Plot = data + Aesthetics + Geometry

7.1.2 图层(layer)

ggplot2基于图层化语法:图形是一层一层的图层叠加而成。实现方式为“+”叠加图层。

绘制一幅散点图来理解图形三要素和图层叠加。

ggplot(df) # 只是创建了一个空的画布。
image.png
ggplot(df, aes(x = v1, y = v5)) # aes添加了映射,将v1映射为x轴,将y映射为y轴,但构建的是一个空坐标系。
image.png
ggplot(data = df, mapping = aes(x = v1, y = v5)) + geom_point() # 添加几何对象为散点。
image.png

这里,数据为df,映射中v1映射给x轴,v5映射给y轴,几何对象为散点图。图形映射和几何对象通过“+”叠加。

参考资料

  1. R语言编程—基于 tidyverse,张敬信,人民邮电出版社(待出版),2022.
  2. R语言教程,李东风,https://www.math.pku.edu.cn/teachers/lidf/docs/Rbook/html/_Rbook/index.html
  3. 《R数据科学》,人民邮电出版社,2018.
  4. ggplot2高效实用指南,https://www.jianshu.com/p/2dc81b91131e
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容