作者:李誉辉 四川大学在读研究生
往期精彩:
1 ggplot2特点
采用图层的设计方式,有利于结构化思维
将表征数据和图形细节分开,能快速将图形表现出来,使创造性绘图更加容易,而不必纠结于图形的细节,细节可以后期慢慢调整
将常见的统计变换融入到了绘图中
有明确的起始(ggplot开始)与终止(一句话一个图层),图层之间的叠加是靠“+”实现的,越往后,其图层越在上方
图形美观,扩展包丰富,有专门调整字体和公式的包,有专门调整颜色的包,还有专门用按钮辅助调整主题的包,总之,应有尽有
2 ggplot2基本概念
Data数据, Mapping映射
Scale标度
Geometric几何对象
Statistics统计变换
Coordinate坐标系统
Layer图层
Facet分面
Legend图例
beautiful美化
3 ggplot2语法框架
绘图流程:
ggplot(data, aes(x = , y = )) + # 基础图层,不出现任何图形元素,
geom_xxx()|stat_xxx() + # 几何图层或统计变换,出现图形元素
coord_xxx() + # 坐标变换,默认笛卡尔坐标系
scale_xxx() + # 标度调整,调整具体的标度
facet_xxx() + # 分面,将其中一个变量进行分面变换
guides() + # 图例调整
theme() # 主题系统
3.1 共性映射与个性映射
ggplot(data = NULL, mapping = aes())
geom_xxx(data = NULL, mapping = aes())
ggplot()
内有data、mapping两个参数
具有全局优先级,可以被之后的所有geom_xxx
对象或stat_xxx()
所继承(前提是geom
或stat
未指定相关参数)而
geom_xxx()
或stat_xxx()
内的参数属于局部参数,仅仅作用于内部为了避免混乱,通常将共性映射的参数指定在
ggplot(aes())
aes内部,将个性映射的参数指定在geom_xxx(aes())
或stat_xxx(aes())
内部
3.2 几何对象与统计变换
几何对象
geom_xxx(stat = )
内有统计变换参数stat
,统计变换stat_xxx(geom = )
内也有几何对象参数geom
两种方法结果相同,几何对象更专注于结果,统计变换更专注于变换过程
library(ggplot2)
# 用几何对象作图
ggplot(data = NULL, mapping = aes(x = x, y = y)) + geom_point(color = "darked",
stat = "identity") # identity 表示没有任何统计变换
# 用统计变换作图
ggplot(data = NULL, mapping = aes(x = x, y = y)) + stat_identity(color = "darked",
geom = "point") # geom_point(stat = 'identity')与stat_identity(geom = 'point')结果一样
3.3 aes与data参数
aes参数用来指定要映射的变量,可以是多个变量,
data参数表示指定数据源,必须是data.frame格式,其坐标轴变量最好宽转长,只能指定一个x轴和y轴,多个x列或y列不能使用调整图例。
4 geom_xxx()
几何对象
常用的几种几何对象函数:
几何对象函数 | 描述 | 其它 |
---|---|---|
geom_point |
点图 | geom_point(position = "jitter") == geom_jitter() 避免重叠 |
geom_line |
折线图 |