Aesthetic mappings describe how variables in the data are mapped to visual
properties (aesthetics) of geoms. aes()
uses non-standard
evaluation to capture the variable names. aes_
and aes_string
require you to explicitly quote the inputs either with ""
for
aes_string()
, or with quote
or ~
for aes_()
.
(aes_q
is an alias to aes_
). This makes aes_
and
aes_string
easy to program with.
aes_(x, y, ...) aes_string(x, y, ...) aes_q(x, y, ...)
x, y, ... | List of name value pairs. Elements must be either quoted calls, strings, one-sided formulas or constants. |
---|
aes_string
and aes_
are particularly useful when writing
functions that create plots because you can use strings or quoted
names/calls to define the aesthetic mappings, rather than having to use
substitute()
to generate a call to aes()
.
I recommend using aes_()
, because creating the equivalents of
aes(colour = "my colour")
or aes{x = `X$1`}
with aes_string()
is quite clunky.
All these functions are soft-deprecated. Please use tidy evaluation
idioms instead (see the quasiquotation section in
aes()
documentation).
#> Aesthetic mapping: #> * `x` -> `mpg` #> * `y` -> `wt` #> * `colour` -> `cyl`aes_(quote(mpg), quote(wt), col = quote(cyl))#> Aesthetic mapping: #> * `colour` -> `cyl` #> * `x` -> `mpg` #> * `y` -> `wt`aes_(~mpg, ~wt, col = ~cyl)#> Aesthetic mapping: #> * `colour` -> `cyl` #> * `x` -> `mpg` #> * `y` -> `wt`aes_string("mpg", "wt", col = "cyl")#> Aesthetic mapping: #> * `colour` -> `cyl` #> * `x` -> `mpg` #> * `y` -> `wt`#> Aesthetic mapping: #> * `x` -> `$100` #> * `colour` -> "smooth"aes_(~ `$100`, colour = "smooth")#> Aesthetic mapping: #> * `colour` -> "smooth" #> * `x` -> `$100`# Ok, you can, but it requires a _lot_ of quotes aes_string("`$100`", colour = '"smooth"')#> Aesthetic mapping: #> * `colour` -> "smooth" #> * `x` -> `$100`#> Aesthetic mapping: #> * `colour` -> `x`aes_(col = as.name(var))#> Aesthetic mapping: #> * `colour` -> `cyl`