當前位置: 首頁>>代碼示例 >>用法及示例精選 >>正文


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。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。