operation-class | R Documentation |
Layer operations are composable transformations that can be applied to ggplot2
layer-like objects, such as stat
s, geom
s, and lists of stat
s and
geom
s; see the layer-like documentation page for a description of valid
layer-like objects.
## S4 method for signature 'operation'
show(object)
## S4 method for signature 'operation'
format(x, ...)
## S4 method for signature 'adjust'
format(x, ...)
## S4 method for signature 'affine_transform'
format(x, ...)
## S4 method for signature 'blend'
format(x, ...)
## S4 method for signature 'operation_composition'
format(x, ...)
## S4 method for signature 'nop'
format(x, ...)
## S4 method for signature 'operation_product'
format(x, ...)
x, object |
An operation. |
... |
Further arguments passed to other methods. |
operations can be composed using the +
and *
operators (see operation_sum
and operation_product). Addition and multiplication of operations and layer-like
objects obeys the distributive law.
operations can be applied to layer-like objects using *
or |>
, with slightly
different results:
Using *
, application of operations to a list of layer-like objects is distributive. For example,
list(geom_line(), geom_point()) * blend("multiply")
is
equivalent to list(geom_line() * blend("multiply"), geom_point() * blend("multiply"))
;
i.e. it multiply-blends the contents of the two layers individually.
Using |>
, application of operations to a list of layer-like objects is not
distributive (unless the only reasonable interpretation of applying the
transformation is necessarily distributive; e.g. adjust()
). For example,
list(geom_line(), geom_point()) |> blend("multiply")
would multiply-blend
both layers together, rather than multiply-blending the contents of the
two layers individually.
For show()
, an invisible()
copy of the input.
For format()
, a character string representing the input.
show(operation)
: Print an operation.
format(operation)
: Format an operation for printing.
library(ggplot2)
# operations can stand alone
adjust(aes(color = x))
# they can also be applied to layers through multiplication or piping
geom_line() |> adjust(aes(color = x))
geom_line() * adjust(aes(color = x))
# layer operations act as a small algebra, and can be combined through
# multiplication and addition
(adjust(fill = "green") + 1) * blend("multiply")
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.