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/v5.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., point
s or bar
s) 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.