当前位置: 首页>>代码示例 >>用法及示例精选 >>正文


R ggplot2 aes 构建美学映射


美学映射说明了数据中的变量如何映射到几何的视觉属性(美学)。可以在 ggplot() 和各个层中设置美学映射。

用法

aes(x, y, ...)

参数

x, y, ...

< data-masking > aesthetic = variable 形式的 name-value 对列表,说明图层数据中的哪些变量应映射到配对的 geom/stat 使用的美学。表达式 variable 在图层数据内进行计算,因此无需引用原始数据集(即使用 ggplot(df, aes(variable)) 而不是 ggplot(df, aes(df$variable)) )。 x 和 y 美学的名称通常被省略,因为它们非常常见;所有其他美学都必须被命名。

类为 uneval 的列表。列表的组成部分是定额或常量。

细节

该函数还通过将 color 转换为 colour (也在子字符串中,例如 point_colorpoint_colour )并将旧式 R 名称转换为 ggplot 名称(例如 pchshapecexsize )。

准引号

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/aes.R

相关用法


注:本文由纯净天空筛选整理自Hadley Wickham等大神的英文原创作品 Construct aesthetic mappings。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。