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 bandSizeis a numeric value (default), the width is determined by the value ofbandSizeand the cardinality of the field mapped to x-channel.   Otherwise, if thebandSizeis"fit", the width will be the value ofconfig.cell.width.• If no field is mapped to xchannel, thewidthwill be the value oftextBandWidthfortextmark and the value ofbandSizefor 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 bandSizeis a numeric value (default), the height is determined by the value ofbandSizeand the cardinality of the field mapped to y-channel.   Otherwise, if thebandSizeis"fit", the height will be the value ofconfig.cell.height.• If no field is mapped to xchannel, theheightwill be the value ofbandSize.  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. |