美学映射说明了数据中的变量如何映射到几何的视觉属性(美学)。可以在 ggplot()
和各个层中设置美学映射。
参数
- x, y, ...
-
<
data-masking
>aesthetic = variable
形式的 name-value 对列表,说明图层数据中的哪些变量应映射到配对的 geom/stat 使用的美学。表达式variable
在图层数据内进行计算,因此无需引用原始数据集(即使用ggplot(df, aes(variable))
而不是ggplot(df, aes(df$variable))
)。 x 和 y 美学的名称通常被省略,因为它们非常常见;所有其他美学都必须被命名。
细节
该函数还通过将 color
转换为 colour
(也在子字符串中,例如 point_color
到 point_colour
)并将旧式 R 名称转换为 ggplot 名称(例如 pch
到 shape
和cex
到 size
)。
准引号
aes()
是 quoting function 。这意味着它的输入被引用以在数据上下文中进行评估。这使得使用 DataFrame 中的变量变得容易,因为您可以直接命名它们。另一方面是您必须使用 quasiquotation 来使用 aes()
进行编程。请参阅dplyr programming vignette 等简洁的评估教程,了解有关这些技术的更多信息。
也可以看看
vars()
用于另一个专为分面规范设计的引用函数。
Delayed evaluation 用于处理计算变量。
例子
aes(x = mpg, y = wt)
#> Aesthetic mapping:
#> * `x` -> `mpg`
#> * `y` -> `wt`
aes(mpg, wt)
#> Aesthetic mapping:
#> * `x` -> `mpg`
#> * `y` -> `wt`
# You can also map aesthetics to functions of variables
aes(x = mpg ^ 2, y = wt / cyl)
#> Aesthetic mapping:
#> * `x` -> `mpg^2`
#> * `y` -> `wt/cyl`
# Or to constants
aes(x = 1, colour = "smooth")
#> Aesthetic mapping:
#> * `x` -> 1
#> * `colour` -> "smooth"
# Aesthetic names are automatically standardised
aes(col = x)
#> Aesthetic mapping:
#> * `colour` -> `x`
aes(fg = x)
#> Aesthetic mapping:
#> * `colour` -> `x`
aes(color = x)
#> Aesthetic mapping:
#> * `colour` -> `x`
aes(colour = x)
#> Aesthetic mapping:
#> * `colour` -> `x`
# aes() is passed to either ggplot() or specific layer. Aesthetics supplied
# to ggplot() are used as defaults for every layer.
ggplot(mpg, aes(displ, hwy)) + geom_point()
ggplot(mpg) + geom_point(aes(displ, hwy))
# Tidy evaluation ----------------------------------------------------
# aes() automatically quotes all its arguments, so you need to use tidy
# evaluation to create wrappers around ggplot2 pipelines. The
# simplest case occurs when your wrapper takes dots:
scatter_by <- function(data, ...) {
ggplot(data) + geom_point(aes(...))
}
scatter_by(mtcars, disp, drat)
# If your wrapper has a more specific interface with named arguments,
# you need the "embrace operator":
scatter_by <- function(data, x, y) {
ggplot(data) + geom_point(aes({{ x }}, {{ y }}))
}
scatter_by(mtcars, disp, drat)
# Note that users of your wrapper can use their own functions in the
# quoted expressions and all will resolve as it should!
cut3 <- function(x) cut_number(x, 3)
scatter_by(mtcars, cut3(disp), drat)
相关用法
- R ggplot2 aes_eval 控制审美评价
- R ggplot2 annotation_logticks 注释:记录刻度线
- R ggplot2 annotation_custom 注释:自定义grob
- R ggplot2 annotate 创建注释层
- R ggplot2 annotation_map 注释:Map
- R ggplot2 annotation_raster 注释:高性能矩形平铺
- R ggplot2 as_labeller 强制贴标机函数
- R ggplot2 vars 引用分面变量
- R ggplot2 position_stack 将重叠的对象堆叠在一起
- R ggplot2 geom_qq 分位数-分位数图
- R ggplot2 geom_spoke 由位置、方向和距离参数化的线段
- R ggplot2 geom_quantile 分位数回归
- R ggplot2 geom_text 文本
- R ggplot2 get_alt_text 从绘图中提取替代文本
- R ggplot2 geom_ribbon 函数区和面积图
- R ggplot2 stat_ellipse 计算法行数据椭圆
- R ggplot2 resolution 计算数值向量的“分辨率”
- R ggplot2 geom_boxplot 盒须图(Tukey 风格)
- R ggplot2 lims 设置规模限制
- R ggplot2 geom_hex 二维箱计数的六边形热图
- R ggplot2 scale_gradient 渐变色阶
- R ggplot2 scale_shape 形状比例,又称字形
- R ggplot2 geom_bar 条形图
- R ggplot2 draw_key 图例的关键字形
- R ggplot2 label_bquote 带有数学表达式的标签
注:本文由纯净天空筛选整理自Hadley Wickham等大神的英文原创作品 Construct aesthetic mappings。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。