drio

Starting with plot in observable

This is a continuation of the first observable video from my previous post. In this video, we continue using the same dataset but we start writing visualizations via plot. This is a javascript library written by the creator of d3js that is oriented to the exploratory stage while doing data analysis. In that stage we want to quickly generate charts to look at the data from different angles, quickly. d3js is more oriented to the explanatory stage. In that stage, we already have the insights and we want to build powerful visualizations to communicate them to our audience.


More on observable

I recently heart Mike Bostock in an interview and he had a few insightful comments that I'd like to capture here.

The first one is where he called Observable a medium for thought as oppose to just code that you feed into a computer for processing. An observable notebook has the code plus all the other chunks of media that facilitate the understanding from other people. You can capture the process, not just the final result.

He also talked about how he finds the browser a good environment for computation. This is a source of controversy. There seems to be two camps in this area: one that wants all the computations to happen in the backend and another one that wants to do the computations in the frontend. In my opinion, for data visualization makes sense to compute things in the browser since we have tons of user interactions that require a quick response time. But for simple web apps, a more server side approach is totally acceptable.

Mike also talks about how, for data visualization, you need to use code if you want to build anything novel. Point and click tools (like tableau) have a myriad of charts and configuration options. But those charts are already known. This is not a complain. Tableau is very powerful and has its place but you need d3js if you want to create something new in the web. It is about composition vs configuration. d3js runs in the javascript runtime. It is a set of constructs that you can compose in different ways to build something unique. On the other hand, you configure tableau to create charts.