Vega-Lite View Specification
Edit this pageVega-Lite specifications are JSON objects that describe a diverse range of interactive visualizations. The simplest form of specification is a specification of a single view, which describes a view that uses a single mark type to visualize the data. Besides using a single view specification as a standalone visualization, Vega-Lite also provides operators for composing multiple view specifications into a layered or multi-view specification. These operators include layer, facet, concat, and repeat.
Documentation Overview
- Common Properties of Specifications
- Top-Level Specifications
- Single View Specifications
- Layered and Multi-view Specifications
- View Configuration
Common Properties of Specifications
All view specifications in Vega-Lite can contain the following properties:
| Property | Type | Description |
|---|---|---|
| name | String |
Name of the visualization for later reference. |
| description | String |
Description of this mark for commenting purpose. |
| title | Text | TitleParams |
Title for the plot. |
| data | Data | Null |
Required. An object describing the data source. Set to |
| transform | Transform[] |
An array of data transformations such as filter and new field calculation. |
| params | TopLevelParameter[] |
An array of parameters that may either be simple variables, or more complex selections that map user input to data queries. |
In addition, all view composition specifications (layer, facet, concat, and repeat) can have the resolve property for scale, axes, and legend resolution:
| Property | Type | Description |
|---|---|---|
| resolve | Resolve |
Scale, axis, and legend resolutions for view composition specifications. |
Finally, all view layout composition (facet, concat, and repeat) can have the following layout properties:
| Property | Type | Description |
|---|---|---|
| align | String | Object |
The alignment to apply to grid rows and columns. The supported string values are
Alternatively, an object value of the form Default value: |
| bounds | String |
The bounds calculation method to use for determining the extent of a sub-plot. One of
Default value: |
| center | Boolean | Object |
Boolean flag indicating if subviews should be centered relative to their respective rows or columns. An object value of the form Default value: |
| spacing | Number | Object |
The spacing in pixels between sub-views of the composition operator. An object of the form Default value: Depends on |
Top-Level Specifications
In addition to the common properties, any kind of top-level specifications (including a standalone single view specification as well as layered and multi-view specifications) can contain the following properties:
| Property | Type | Description |
|---|---|---|
| $schema | String |
URL to JSON schema for a Vega-Lite specification. Unless you have a reason to change this, use |
| background | Color | ExprRef |
CSS color property to use as the background of the entire view. Default value: |
| padding | Number | Object | ExprRef |
The default visualization padding, in pixels, from the edge of the visualization canvas to the data rectangle. If a number, specifies padding for all sides. If an object, the value should have the format Default value: |
| autosize | String | AutoSizeParams |
How the visualization size should be determined. If a string, should be one of Default value: |
| config | Config |
Vega-Lite configuration object. This property can only be defined at the top-level of a specification. |
| usermeta | Object |
Optional metadata that will be passed to Vega. This object is completely ignored by Vega and Vega-Lite and can be used for custom metadata. |
Single View Specifications
{
// Properties for top-level specification (e.g., standalone single view specifications)
"$schema": "https://vega.github.io/schema/vega-lite/v6.json",
"background": ...,
"padding": ...,
"autosize": ...,
"config": ...,
"usermeta": ...,
// Properties for any specifications
"title": ...,
"name": ...,
"description": ...,
"data": ...,
"transform": ...,
// Properties for any single view specifications
"width": ...,
"height": ...,
"mark": ...,
"encoding": {
"x": {
"field": ...,
"type": ...,
...
},
"y": ...,
"color": ...,
...
}
}
A single view specification describes a graphical mark type (e.g., points or bars) and its encoding, or the mapping between data values and properties of the mark. By simply providing the mark type and the encoding 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 enables customization.
As it is designed for analysis, Vega-Lite also supports data transformation such as aggregation, binning, time unit conversion, filtering, and sorting.
To summarize, a single-view specification in Vega-Lite can have the following properties (in addition to common properties of a specification):
| Property | Type | Description |
|---|---|---|
| mark | Mark |
Required. A string describing the mark type (one of |
| encoding | Encoding |
A key-value mapping between encoding channels and definition of fields. |
| width | Number | String | Object |
The width of a visualization.
Default value: Based on Note: For plots with See also: |
| height | Number | String | Object |
The height of a visualization.
Default value: Based on Note: For plots with See also: |
| view | ViewBackground |
An object defining the view background’s fill and stroke. Default value: none (transparent) |
| projection | Projection |
An object defining properties of geographic projection, which will be applied to |
View Background
The background property of a top-level view specification defines the background of the whole visualization canvas. Meanwhile, the view property of a single-view or layer specification can define the background of the view with the following properties:
| Property | Type | Description |
|---|---|---|
| style | String | String[] |
A string or array of strings indicating the name of custom styles to apply to the view background. A style is a named collection of mark property defaults defined within the style configuration. If style is an array, later styles will override earlier styles. Default value: |
| cornerRadius | Number | ExprRef |
The radius in pixels of rounded rectangles or arcs’ corners. Default value: |
| cursor | String |
The mouse cursor used over the view. Any valid CSS cursor type can be used. |
| fill | Color | Null | ExprRef |
The fill color. Default value: |
| fillOpacity | Number | ExprRef |
The fill opacity (value between [0,1]). Default value: |
| opacity | Number | ExprRef |
The overall opacity (value between [0,1]). Default value: |
| stroke | Color | Null | ExprRef |
The stroke color. Default value: |
| strokeCap | String | ExprRef |
The stroke cap for line ending style. One of Default value: |
| strokeDash | Number[] | ExprRef |
An array of alternating stroke, space lengths for creating dashed or dotted lines. |
| strokeDashOffset | Number | ExprRef |
The offset (in pixels) into which to begin drawing with the stroke dash array. |
| strokeJoin | String | ExprRef |
The stroke line join method. One of Default value: |
| strokeMiterLimit | Number | ExprRef |
The miter limit at which to bevel a line join. |
| strokeOpacity | Number | ExprRef |
The stroke opacity (value between [0,1]). Default value: |
| strokeWidth | Number | ExprRef |
The stroke width, in pixels. |
Example: Background
For example, the following plot has orange as the whole visualization background color while setting the view background to yellow.
Layered and Multi-view Specifications
To create layered and multi-view graphics, please refer to the following pages:
View Configuration
// Top-level View Specification
{
...,
"config": { // Configuration Object
"view": { // - View Configuration
// View Size
"continuousWidth": ...,
"continuousHeight": ...,
"discreteWidth": ...,
"discreteHeight": ...,
// View Background Properties
"fill": ...,
"stroke": ...,
...
},
...
}
}
The style of a single view visualization can be customized by specifying the view property of the config object. The view config support all view background properties except "style".
In addition, the following properties of the view configuration determine the default width and height of single and layered views.
| Property | Type | Description |
|---|---|---|
| continuousWidth | Number |
The default width when the plot has a continuous field for x or longitude, or has arc marks. Default value: |
| continuousHeight | Number |
The default height when the plot has a continuous y-field for x or latitude, or has arc marks. Default value: |
| discreteWidth | Number | Object |
The default width when the plot has non-arc marks and either a discrete x-field or no x-field. The width can be either a number indicating a fixed width or an object in the form of Default value: a step size based on |
| discreteHeight | Number | Object |
The default height when the plot has non arc marks and either a discrete y-field or no y-field. The height can be either a number indicating a fixed height or an object in the form of Default value: a step size based on |
| step | Number |
Default step size for x-/y- discrete fields. |
For example, setting the step property in the view config can adjust default discrete step in the plot.
For more information about view size, please see the size documentation.