03 ggplot2三部曲之基础二
Date : 2021-11-25_Thu
微信公众号 : 北野茶缸子
Tags : #R/R可视化 #R/R数据科学 #R/index/01
参考:
开始前
主要为ggplot2 中的后四个部分的内容。
geometries 几何对象
不同的几何对象

几何对象的叠加
几何对象的本质,也就是画面上的不同图层。当我们通过 ggplot(data=example) 后,便相当于设定了默认的ggplot2 设定的背景图层,接着依靠 +geom_point() , +geom_bar() 等等,便可以实现图层的添加。
也正因其代表不同的图层,因此也可以利用新的图层对旧的图层进行叠加(或覆盖)。 
先后顺序
但也正和图层的叠加一样,R中ggplot 的叠加也有先后顺序,后来的图层会覆盖在原来的图层上。


全局与局部映射
我们可以设定整个图像中图层的参数,依靠设置 ggplot ,也可以对不同的图层进行局部设定 geom_xxx() ,这样也就实现了局部和全局的映射设置。 
映射冲突
如果全局映射与局部映射发生冲突,则以局部映射为准。

statistics 统计变换
对应几何图形
几何图形函数一般都会对应一个统计变换函数的图形。
因此某种程度来说,统计变换对应的函数和几何对象对应的函数差别不大。
geom_bar 相当于默认的帮助我们以cut 列作为统计对象,对diamonds 表格进行频数计算。 对此我们可以使用 table 并转换为 dataframe 自行实现。
相关参数
stat
当需要对直方图自定义x,y 时,需要设定参数 stat ,其默认参数为 count (也正因此geom_bar 对应stat_count),它会计算出选择的对象在出现的频数作为y。因此若我们希望自定义y,需要将其改为 identity 。否则会报错。
..prop..
若希望显示出的不是频数,而是频率,则可以通过为y 赋值,将直方图计算出的统计结果重新映射给比例 ..prop.. 。
position 位置调整
一般的位置调整问题存在于散点图或直方图中,指的是变量经过ggplot 转换而成的图形所进行的位置调整。
散点图
jitter
通过为本来重叠在同一位置的点添加随机的“抖动”,使重叠的点产生错位,也因此能够完全地显示在图像里。 
柱状图
dodge
可以让组中的直方图并列显示。(适合组间或组内参数的比较)

stack
默认的直方图其位置参数即为 stack 。图形堆叠在一起。(适合整体的比较)

fill
与 stack 类似,只不过显示的是各部分占其整体的比重。(无法比较各组之间大小差异)

coordinate 坐标系
翻转坐标系
极坐标系

theme 主题
通过theme 可以改变绘图图形本来的一些样式,属于非常细节的部分。通常来说,theme 可以定义一些非数据的绘图元素,包括:
我们可以使用ggplot 内建的theme。
我们还可以直接定义theme 中的参数,如通过rel函数将字体大小提升到1.5倍:
labs
labs 可以对ggplot2 绘图中的标签进行修改。
在使用labs 属性定义图像时,还可以使用expression 语句,生成绘图中的希腊字母、特殊符号或公式,但该包的语法比较奇怪,比如:


自定义主题
如果我们想保留某类主题作为模版,这样就不用在绘制新图时反复调用它了:
另外,如果希望主题在全局生效,可以直接使用函数:
完整绘图模版

易错点
局部映射与全局映射冲突时,以局部映射为准。
图层存在先后顺序,后来的图层越靠近顶层。
ggplot2 无法借助循环直接批量将绘图映射在同一层面上,可以借助列表先存储这些绘图,再使用拼图函数将它们拼接在同一画面上。
练习题
6-2
6-3

Last updated