Skip to main content

Vega

Vega creates data visualizations from a declarative JSON specification.

Use this type​

Use Vega when you need detailed control of data, scales, signals, marks, and interactions.

Source format​

The source format is Vega JSON. Enter the source in the diagram.zip editor.

Syntax essentials​

  • Use a JSON object with a Vega schema URL.
  • Put inline records in a data source.
  • Define scales and axes before marks use them.
  • Use mark encodings to map data to visual properties.

Example​

{
"$schema": "https://vega.github.io/schema/vega/v6.json",
"width": 320,
"height": 180,
"padding": 5,
"data": [{
"name": "steps",
"values": [
{"step": "Create", "count": 8},
{"step": "Review", "count": 5},
{"step": "Share", "count": 7}
]
}],
"scales": [
{"name": "x", "type": "band", "domain": {"data": "steps", "field": "step"}, "range": "width", "padding": 0.2},
{"name": "y", "type": "linear", "domain": {"data": "steps", "field": "count"}, "nice": true, "zero": true, "range": "height"}
],
"axes": [
{"orient": "bottom", "scale": "x"},
{"orient": "left", "scale": "y"}
],
"marks": [{
"type": "rect",
"from": {"data": "steps"},
"encode": {"enter": {
"x": {"scale": "x", "field": "step"},
"width": {"scale": "x", "band": 1},
"y": {"scale": "y", "field": "count"},
"y2": {"scale": "y", "value": 0},
"fill": {"value": "#7c3aed"}
}}
}]
}
Rendered exampleDrag to pan. Use the wheel or controls to zoom.
100%
This view uses the live diagram.zip renderer.

Limitations​

  • URL-backed data and images are not available.
  • diagram.zip returns SVG for this type.

Upstream reference​

Vega documentation