scale | R Documentation |
Scales transform input data into visual representations, predominantly:
colours: fill
, line
, highlight
sizes: radius
, elevation
, width
, height
Transformations are performed in client-side javascript, thus scales have very minimal file-size overhead; what you pay for is the source data being scaled & the scale descriptor (palette, breaks, etc), but you don't pay for the scaled output (e.g. the vector of colours). Many scales can refer to the same column of a dataframe, but the column will only be serialised once.
Data retrieved in the browser dynamically can also be scaled, including mvt_layer()
. All rdeck
scales (except scale_quantile()
) support both R dataframes and data fetched in javascript, with the
following restrictions:
column validation isn't performed – missing column / incorrect type may error in javascript, or
result in the na_color
/ na_value
used for all features
limits
/ levels
must be explictly defined in the scale – they cannot be learnt from data
quantile scales technically work, but they require a copy of the data to compute the quantiles
Columns referenced by a scale support tidy-eval
expressions. The col
parameter for a scale must be a valid argument to rlang::ensym()
and follows
the same rules. Use the injection operators to pass the value of a name
from the environment, e.g. !!my_column
.
Scales can optionally produce a colour or numeric legend in the client. Numeric legends give context for which visual field is being scaled and by what column; colour legends additionally provide a colour scale and untransformed ticks.
Legend ticks can be formatted with a labelling function (e.g. scales::label_number()
). This function
can completely replace the input ticks if you wish; the only constraint is the return value is a character
vector of the same length as input unformatted ticks.
Legends are kepler.gl inspired.
scale_linear
scale_power
scale_log
scale_symlog
scale_identity
scale_threshold
scale_quantile
scale_category
scale_quantize
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.