Vega-Lite Specification
Vega-Lite Specifications
At its core, Vega-Lite specifications are JSON objects that describe visualizations as mappings from data to properties of graphical marks (e.g., points or bars). By simply providing a mark type and a mapping, Vega-Lite automatically produces other visualization components including axes, legends, and scales. Unless explicitly specified, Vega-Lite determines properties of these components based on a set of carefully designed rules. This approach allows Vega-Lite specifications to be succinct and expressive, but also provide user control.
As it is designed for analysis, Vega-Lite also supports data transformation such as aggregation, binning, time unit conversion, filtering, and sorting. In addition, it also supports faceting a single plot into trellis plots or small multiples.
{
"description": ... ,
"data": ... ,
"mark": ... ,
"transform": ...,
"encoding": {
"x": {
"field": ...,
"type": ...,
...
},
"y": ...,
"color": ...,
...
},
"config": ...
}
In Vega-Lite, a specification can have the following top-level properties.
Property | Type | Description |
---|---|---|
description | String | An optional description of this mark for commenting purpose. This property has no effect on the output visualization. |
width | Integer | Width of a single visualization. (For faceted plot, this represents the width of a single cell.) If not specified (undefined ), this will be determined by the following rules: • For x-axis with a continuous (non-ordinal) scale, the width will be the value of config.cell.width . • For x-axis with an ordinal scale: if bandSize is a numeric value (default), the width is determined by the value of bandSize and the cardinality of the field mapped to x-channel. Otherwise, if the bandSize is "fit" , the width will be the value of config.cell.width . • If no field is mapped to x channel, the width will be the value of textBandWidth for text mark and the value of bandSize for other marks. Default value: undefined .Examples: Please see Customizing Size page. |
height | Integer | Height of a single visualization. (For faceted plot, this represents the height of a single cell.) If not specified (undefined ), this will be determined by the following rules: • For y-axis with a continuous (non-ordinal) scale, the height will be the value of config.cell.height . • For y-axis with an ordinal scale: if bandSize is a numeric value (default), the height is determined by the value of bandSize and the cardinality of the field mapped to y-channel. Otherwise, if the bandSize is "fit" , the height will be the value of config.cell.height . • If no field is mapped to x channel, the height will be the value of bandSize . Default value: undefined .Examples: Please see Customizing Size page. |
data | Object | An object describing the data source. |
transform | Object | An object describing filter and new field calculation. |
mark | String | The mark type. One of "bar" , "circle" , "square" , "tick" , "line" , "area" , "point" , and "text" . |
encoding | Object | A key-value mapping between encoding channels and definition of fields. |
config | Object | Configuration object. |