accessor | R Documentation |
Accessors map data
columns to visual representations, primarily:
colours: fill
, line
, highlight
sizes: radius
, elevation
, width
, height
geometries point/multipoint
, linestring/multilinestring
, polygon/multipolygon
On the client, an accessor is translated to a javascript function that retrieves the specified
column values for each rendered feature. An equivalent R function would look something like
function(data, col, index) data[[index, col]]
.
Accessors support tidy-eval expressions.
Rules for referencing a column vs. a value from the environment is similar to dplyr::mutate()
,
with the main difference being that all names are assumed to be columns of data
, not falling
back to the environment when they're not found.
Like dplyr::mutate()
, using string literals to reference columns isn't supported – this will be
interpreted as a literal string. You may reference a column with:
a name
(e.g. my_col
)
a call evaluating name
, e.g. as.name()
, rlang::sym()
, etc
by injecting a variable from the environment containing a name
with !!my_var
, or {{myvar}}
Literal expressions – except calls evaluating a name
or a scale
– will be interpreted as
constant values (e.g. "#ff0000"
, 1
, TRUE
, etc.). To use the value of a variable from the
environment, use the injection operators, e.g. !!my_constant
.
Examples:
get_fill_color = color
: column accessor, referencing the "color" column
get_fill_color = "#ff0000"
: a constant value (red)
get_fill_color = !!color
: injects the value of color
from the environment; if it's a name
it will be a column with the value of color
(e.g. color <- as.name("my_color_column"))
get_fill_color = rlang::sym("my_color")
: column accessor, referencing "my_color" column
get_fill_color = scale_color_threshold(color)
: a threshold scale, which transforms the "color"
column
Some parameters accept either an accessor or a scale
. Scales transform numeric and categorical
vectors into colours and numeric values, and optionally render a legend; similar to ggplot scaling
aesthetics.
An accessor can perform this same task by manually transforming some input into a vector of colours or numbers, but this is worse because:
the transformed output (e.g. a colour vector) must be stored in the data (data bloat)
visual representations aren't data
legend won't be rendered
Some parameters accept either an accessor or a value; get_radius
is such an example which accepts
either a scalar numeric
value, or an accessor
to a numeric
column, or a numeric
scale
.
A value can be thought of as accessor where all values in the referenced column are the same
(i.e. a constant column), but optimised for file size and render speed.
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.