Vega: A Visualization Grammar


Vega is a visualization grammar, a declarative format for creating and
saving interactive visualization designs. With Vega you can describe data
visualizations in a JSON format, and generate interactive views using either
HTML5 Canvas or SVG.

To learn more, visit the wiki.

The Vega Runtime

This repository contains the vega-runtime system, which parses Vega
specifications to produce interactive visualizations which run in the
browser using a scenegraph-based rendering system.

Build Process

To manually build Vega, you must have npm installed.

  1. Run npm install in the vega folder to install dependencies.
  2. Run npm run build. This will invoke browserify to bundle the source files into vega.js, and then uglify-js to create the minified vega.min.js.

Vega visualization specifications can be validated against a JSON Schema. To generate the vega-schema.json definition file, run npm run schema.

Built files are available on npm, and under tagged releases. The latest built versions can be found at vega.min.js and vega-schema.json.

Vega Server-Side and Command Line Tools

Vega can also be run server-side using node.js. When running in "headless"
mode, Vega can be used to render specifications directly to PNG or SVG. In
addition to the summary below, see the Headless Mode wiki
for more

Command Line Tools

Vega includes two command line tools for converting Vega JSON specifications
to rendered PNG or SVG:

  • vg2png: vg2png [-b basedir] vega_json_file [output_png_file]
  • vg2svg: vg2svg [-b basedir] [-h] vega_json_file [output_svg_file]

Within the Vega project directories, you can invoke these utilities using
./bin/vg2png or ./bin/vg2svg. If you import Vega using npm, these commands
are accessible either locally (node_modules/.bin/vg2png) or globally
(vg2png) depending on how you install the Vega package.

Using Vega in node.js Projects

To include Vega in a node project, first install it from the command line
using npm (npm install vega) or by including "vega" among the dependencies
in your package.json file.