Expressions¶
Expressions allow for defining predicates or computing new variables based on existing data. The expression language is based on JavaScript, but provides only a limited set of features, guaranteeing secure execution.
Expressions can be used with the "filter"
and
"formula"
transforms.
Usage¶
All basic arithmetic operators are supported:
(1 + 2) * 3 / 4
The current data object is provided as the datum
object. Its properties (fields)
can be accessed by using the dot or bracket notation:
datum.foo + 2
If the name of the property contains special characters such as ".
", "!
",
or "
" (a space) the bracket notation must be used:
datum['A very *special* name!'] > 100
Conditional operators¶
Ternary operator:
datum.foo < 5 ? 'small' : 'large'
And an equivalent if
construct:
if(datum.foo < 5, 'small', 'large')
Provided constants and functions¶
Common mathematical functions are supported:
(datum.u % 1e-8 > 5e-9 ? 1 : -1) *
(sqrt(-log(max(1e-9, datum.u))) - 0.618) *
1.618
The full list of built-in constants and functions are documented in vega-expression.