Kevin Lynagh

Building a grammar for statistical graphics in Clojure

Kevin visualizes data and makes statistical interfaces on the web. He has written enough JavaScript to be terribly excited about ClojureScript. Before Clojure he wrote machine learning and analytics tools in R and Scala. In 2010 he wrote a thesis on protein structure, for which Reed College inexplicably awarded him a physics degree. Kevin lives in Portland, Oregon, and spends as much time rock climbing as he does in the REPL.





Building a grammar for statistical graphics in Clojure

Friday 15.20 - 16.10 in: Honey Badger

As programmers, we're used to seeing data in rectangular tables that are optimized for fast retrieval and processing by computer. Pictures of data, such as scatterplots, bar charts, and maps, optimize data for efficient analysis by human. SQL is powerful because it allows us to ask complex questions of our data without busying ourselves with the mechanics of iteration, aggregation, and indexing. We need the same for pictures: a grammar that allows us to express rich data visualizations without the nuisance of looping, drawing axes, and juggling legends.

In this talk, I will introduce such a grammar of graphics, implemented in Clojure. As motivation, I'll discuss the principles of effective data visualization and the insights that can come from just looking at your data. The grammar itself consists of simple data structures, maps and arrays. As a first consequence, this means the grammar can be easily used across the JVM as well as via JSON. However, there are several other, deeper ramifications of having a "data API" that will be discussed.

Tags: Architecture Back end Front end Tools