文章目录
说明函数名及参数1、基本用法2、函数的进一步封装
说明
R语言的版本为4.0.2,IDE为Rstudio,版本为1.3.959。学习的主要内容是R官方文档当中给出的算法,对其中的英文注释做了自己理解基础上的翻译。
函数名及参数
# 映射函数,函数的最常见参数有两个
# x:x向量,将数据映射到本图层的x轴
# y:y向量,将数据映射到本图层的y轴
# …:其他向量,将数据映射到本图层的其他几何要素上
library(ggplot2
)
aes(x
, y
, ...)
1、基本用法
# 映射的两种基本写法
aes(x
= mpg
, y
= wt
)
aes(mpg
, wt
)
# 可以映射多变量函数到几何要素上
aes(x
= mpg
^ 2, y
= wt
/ cyl
)
# 可以映射常量到几何要素上
aes(x
= 1, colour
= "smooth")
# 函数会自动补全参数名,以下四种写法等价
aes(col
= x
)
aes(fg
= x
)
aes(color
= x
)
aes(colour
= x
)
#
可以在ggplot()中设置全局默认映射,也可以单独为每一个图层设置映射
ggplot(mpg
, aes(displ
, hwy
)) + geom_point()
ggplot(mpg
) + geom_point(aes(displ
, hwy
))
2、函数的进一步封装
# 封装到自定义函数之后,该函数会自动调用它所有的参数
# 但是需要对自动调用的参数进行处理,使用
...的形式代替最为简洁
scatter_by
<- function(data
, ...) {
ggplot(data
) + geom_point(aes(...))}
scatter_by(mtcars
, disp
, drat
)
# 如果在封装时指定了具体的参数名,需要在函数内部重新引用参数名
#
enquote():返参函数,重新引用参数保护原参数
#
!!;强制使用符,强制用数据框中的数据变量替代环境变量
scatter_by
<- function(data
, x
, y
) {
x
<- enquo(x
)
y
<- enquo(y
)
ggplot(data
) + geom_point(aes(!!x
, !!y
))}
scatter_by(mtcars
, disp
, drat
)
# 在封装当中依然可使用自定义的函数
#
cut_number():数据分组函数,将数据按区间划分成指定组数
cut3
<- function(x
) cut_number(x
, 3)
scatter_by(mtcars
, cut3(disp
), drat
)
自封装散点图函数按区间分组后