- 附件:: [[速查表-ggplot2数据可视化.pdf]]|[[速查表-ggplot2数据可视化中文版.pdf]]|[[张敬信-R语言编程:基于tidyverse-至第3章-2021-11-07.pdf#page=218|张敬信R语言教程tidyverse可视化p218]]
- 备注:: R语言-ggplot2绘图语法串讲_哔哩哔哩_bilibili, 2022/4/9
[!info]- 教程主要内容 R语言-ggplot2绘图语法串讲,包括全部10个部件: • 数据(data) • 映射(mapping) • 几何对象(geom) • 标度(scale) • 统计变换(stats) • 坐标系(coord) • 位置调整(Position adjustments) • 分面(facet) • 主题(theme) • 输出(output) 语法+代码实例讲解
- 00:47
图层叠加而成,R语言的名片。
- 整洁的数据映射为几何对象,集合对象具有美学特征,会根据需要对数据做统计变换,调整标度,结果投影到坐标系,更换主题。
- 06:16 基本绘图模板
- 10:31 图形映射
汽车数据可视化案例
19:39
1
2
3
4
5
6
7
8
9
10
11
12
13library(tidyverse)
ggplot(data = mpg,mapping = aes(x = displ,y = hwy, color = drv)) # 颜色映射到驱动方式 `drv` 变量
## 简化之后的代码
ggplot(mpg,aes(displ,hwy,color=drv))+
geom_point()
## 美学映射也可以放在几何对象中,效果同上
ggplot(mpg,aes(displ,hwy))+
geom_point(aes(color=drv))+ # 感觉这种更容易理解一些,但是这样的话只能对本层生效,不会全局生效,几何对象优先使用局部,局部没有则用全局
geom_smooth() # 加上光滑的拟合曲线,默认是局部多项式拟合
1 | geom_point():散点图 |
- 26:26
标度设置
scale_<MAPPING>_<KIND>
,标度函数控制几何对象中的标度映射:不只是x,y轴,还有color,fill,shape,size产生的图例。它们是数据中的连续或分类变量的可视化表示,这需要关联到标度,所以要用到映射。 - 28:37
常用的标度函数,对数坐标,开根号的坐标、颜色渐变等
- 图例与坐标轴的组件:
- 32:02 修改坐标轴刻度及标签35:17 修改坐标轴标签为分类数据
- 38:35 美国经济数据时间轴日期间隔设置
- 40:35
修改坐标轴标签,图例名称和图例位置
"none"
不放图例 - 46:32 设置图形标题,主标题、副标题、备注,标题居中
- 53:48 设置 fill,color 颜色,更建议使用RColorBrewer(调色板)或colorspace包
- 57:21 使用调色板的颜色、渐变色[[张敬信-R语言编程:基于tidyverse-至第3章-2021-11-07.pdf#page=233]]
- 01:02:39
添加文字标注,添加数据标签,先选要标记的样本,
library(ggrepel)
添加文本注释
annotate()
1 | ggplot(mpg, aes(displ, hwy)) + |
01:10:36 统计变换
1 | stat_bin():geom_bar(),geom_freqpoly(), |
01:17:10
小提琴图 1
2
3
4
5
6ggplot(mpg, aes(x = class, y = hwy)) +
geom_violin(trim = FALSE, alpha = 0.5, color = "green")+ # 小提琴图
stat_summary(fun = mean,
fun.min = function(x) {mean(x) - sd(x)}, # 最小:均值-一倍标准差
fun.max = function(x) {mean(x) + sd(x)}, # 最小:均值+一倍标准差
geom = "pointrange", color = "red")
01:18:36 坐标系
1 | coord_flip():坐标轴翻转,即x 轴与y 轴互换,比如绘制水平条形图 |
条形图中的条形位置调整 1
2
3position_stack(): 竖直堆叠
position_fill(): 竖直(百分比) 堆叠,按比例放缩保证总高度为1
position_dodge(), position_dodge2(): 水平堆叠1
2
3ggplot(mpg, aes(class, fill = drv)) + # 横轴:其中车型,每个class根据不同的drv来填充颜色
geom_bar(position = position_dodge(preserve = "single")) # single 是为了保证只有一个drv的时候,绘制一个条形图,而不是和三个一样宽的条形图
# geom_bar(position = "dodge")
01:26:38
借助
patchwork
实现多个图形排布(多图排布),注意和[[R语言-分面绘图|分面绘图]]有区别,也可以用[[多图拼接]]的方法
1 | library(patchwork) |
^gfi4cm
01:28:32 分面(Facet)[[R语言-分面绘图|分面绘图]]
1 | ggplot(mpg, aes(displ, hwy)) + |
01:30:35 主题
1 | theme_bw() |
01:32:26 保存[[张敬信-R语言编程:基于tidyverse-至第3章-2021-11-07.pdf#page=243]]