The Vega Visualization Tools by the UW Interactive Data Lab
Declarative formats & Applications for Creating, Saving & Sharing Visualizations
Over years working in data visualization, we’ve sought to build tools that help designers craft sophisticated graphics, including systems such as Prefuse, Protovis and D3.js. However, in the grand scheme of things, “artisanal” visualizations hand-coded by skilled designers are the exception, not the rule. The vast majority of the world’s visualizations instead are produced using end-user applications such as spreadsheets and business intelligence tools. While valuable, these tools often fall short of fully supporting the iterative, interactive process of data analysis. Improved tools could help a larger swath of people create effective visualizations and better understand their data. The goal of the Vega project is to promote an ecosystem of usable and interoperable visualization tools, supporting use cases ranging from exploratory data analysis to effective communication via custom visualization design. This goal has led us to develop not a singular system, but rather a stack of tools for interactive data visualization. At the foundation of this stack is the Vega visualization grammar. Similar to how SQL provides a language for expressing database queries, Vega provides a declarative language for describing interactive visualizations with primitive building blocks such as data, transforms, marks, and event streams. On top of Vega, Vega-Lite provides a concise language for rapidly generating statistical graphics to support data analysis. With Vega and Vega-Lite, we have built a number of graphical user interfaces including the Voyager visualization tool, which blends manual and automated chart authoring to facilitate exploratory data analysis. Tools from the Vega ecosystems have been adopted by the Jupyter/Python data science communities, Wikipedia, and leading tech companies including Apple, Google, Microsoft, Netflix, FitBit, and Twitter.