A visualization grammar, a language for:
* — creating, saving and sharing interactive visualization designs
* — describe visual appearance and interactive behaviour of visualization in json
* — reactive signals that dynamically modify a visualization in response to input
The key semantics are:
* — width, height, padding, autosize (all are for specifying the size of the
* — data (an array of data definitions, can define type, name, stream, url, and values of the
— scales (Configurations for as to map columns of data to pixel positions or
colors, or type of representation(for ex: categorical==> bands etc)).
— axes (Configuration of axes)
— marks (Graphical primitives, which are used to encode data. Has properties
position, size, shape, color. Examples are: dot, circle, rectangle(bar-chart),
- — Have sub properties encode which marks the graphical primitives
- — Encode’s Sub property enter and exit configure interactive parts when
the mark is added or removed.
- — marks sub property hover, update configure overall interactive parts
- — each of the hover, update properties can be triggered/linked to signals
and changed accordingly
— A special type of mark called group is present and can contain other
marks(for composition of graphical primitives to create complex ones)
— signals (act as dynamic variables, or as event-listeners to use js parlance)
- — Has sub property event streams
- — Can set dynamically evaluated variables as values on events as
- — Events can be mouse over, mouse out, click,drag etc..
- — Event streams
- — Has sub properties source, type, marktype, between, consume, filetr etc.
- — Each sub property decides which mark to change/update, based on which
— Event streams also have CSS-style selectors
- — Can create legends for the visualizatinos
— customize them with sub properties type, orient, fill, opacity, shape
- — As the name implies it can transform data streams
- — Has sub properties ilke filter, stack, aggregate, bin, collect, fold,