Data
Edit this pageAkin to Vega’s data model, the basic data model used by Vega-Lite is tabular data, similar to a spreadsheet or a database table. Individual data sets are assumed to contain a collection of records, which may contain any number of named data fields.
Vega-Lite’s data
property describes the visualization’s data source as part of the specification, which can be either inline data (values
) or a URL from which to load the data (url
). Alternatively, we can create an empty, named data source (name
), which can be bound at runtime or populated from top-level datasets.
Documentation Overview
Types of Data Sources
Inline Data
Inline Data can be specified using values
property.
Here is a list of all properties of an inline data
source:
Property | Type | Description |
---|---|---|
values | InlineDataset |
Required. The full data set, included inline. This can be an array of objects or primitive values, an object, or a string.
Arrays of primitive values are ingested as objects with a |
name | String |
Provide a placeholder name and bind data at runtime. |
format | DataFormat |
An object that specifies the format for parsing the data. |
For example, the following specification embeds an inline data table with nine rows and two columns (a
and b
).
If the input data is simply an array of primitive values, each value is mapped to the data
property of a new object. For example [5, 3, 8, 1]
is loaded as:
[ {"data": 5}, {"data": 3}, {"data": 8}, {"data": 1} ]
You can also inline a string that will be parsed according to the specified format type.
Data from URL
Data can be loaded from a URL using the url
property. In addition, the format of the input data can be specified using the formatType
property. By default Vega-Lite will infer the type from the file extension.
Here is a list of all properties describing a data
source from URL:
Property | Type | Description |
---|---|---|
url | String |
Required. An URL from which to load the data set. Use the |
name | String |
Provide a placeholder name and bind data at runtime. |
format | DataFormat |
An object that specifies the format for parsing the data. |
For example, the following specification loads data from a relative url
: data/cars.json
. Note that the format type is implicitly "json"
by default.
Named Data Sources
Data can also be added at runtime through the Vega View API.
Data sources are referenced by name, which is specified in Vega-Lite with name
.
Here is a list of all properties describing a named data
source:
Property | Type | Description |
---|---|---|
name | String |
Required. Provide a placeholder name and bind data at runtime. |
format | DataFormat |
An object that specifies the format for parsing the data. |
For example, to create a data source named myData
, use the following data
{
"name": "myData"
}
Format
The format object describes the data format and additional parsing instructions.
Property | Type | Description |
---|---|---|
type | String |
Type of input data: |
parse | String | Parse | Null |
If set to For |
json
Loads a JavaScript Object Notation (JSON) file. Assumes row-oriented data, where each row is an object with named attributes. This is the default file format, and so will be used if no format parameter is provided. If specified, the format
parameter should have a type property of "json"
, and can also accept the following:
Property | Type | Description |
---|---|---|
property | String |
The JSON property containing the desired data.
This parameter can be used when the loaded JSON file may have surrounding structure or meta-data.
For example |
csv
Load a comma-separated values (CSV) file. This format type does not support any additional properties.
tsv
Load a tab-separated values (TSV) file. This format type does not support any additional properties.
dsv
Load a delimited text file with a custom delimiter. This is a general version of CSV and TSV.
Property | Type | Description |
---|---|---|
delimiter | String |
Required. The delimiter between records. The delimiter must be a single character (i.e., a single 16-bit code unit); so, ASCII delimiters are fine, but emoji delimiters are not. |
topojson
Load a JavaScript Object Notation (JSON) file using the TopoJSON format. The input file must contain valid TopoJSON data. The TopoJSON input is then converted into a GeoJSON format. There are two mutually exclusive properties that can be used to specify the conversion process:
Property | Type | Description |
---|---|---|
feature | String |
The name of the TopoJSON object set to convert to a GeoJSON feature collection.
For example, in a map of the world, there may be an object set named |
mesh | String |
The name of the TopoJSON object set to convert to mesh.
Similar to the |
Datasets
Vega-Lite supports a top-level datasets
property. This can be useful when the same data should be inlined in different places in the spec. Instead of setting values inline, specify datasets at the top level and then refer to the named datasource in the rest of the spec. datasets
is a mapping from name to an inline dataset.
"datasets": {
"somedata": [1,2,3]
},
"data": {
"name": "somedata"
} ```