I would recommend getting to know Vega-Lite and Vega, which are based on the ideas of grammar graphics (the power behind the popular ggplot2 R library). The main idea of ββGG is that data visualizations are defined as declarative descriptions of how data properties correspond to the aesthetics of dataviz. Vega-Lite and Vega take it one step further by providing an interaction grammar that allows you to create interactive data visualizations and complex explorer views. Moreover, he raises the emphasis on the declarative nature of GG in the sense that the specifications of Vega-Lite and Vega are described as pure data (JSON), which makes it very consistent with the data-based philosophy in the Clojure world, and paves the way for seamless interaction with different languages ββand the like.
Vega-Lite is a more or less high-tech data analysis tool focused on providing high leverage and automation based on highly Spartan specifications. It compiles into Vega, which is a slightly lower level and more powerful but less automated version of Vega-Lite. Usually itβs enough to start with Vega-Lite and switch to Vega only as needed.
For more information about Vega and Vega-Lite, see: https://vega.imtqy.com .
If you want to use Vega-Lite or Vega from Clojure or ClojureScript, you can use the small but flexible wrapper library that I wrote and called Oz:
https://github.com/metasoarous/oz
metasoarous
source share