ggplot2学习之3——aes函数

    技术2022-07-10  122

    文章目录

    说明函数名及参数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) 自封装散点图函数按区间分组后
    Processed: 0.010, SQL: 9