metasoarous / oz

Data visualizations in Clojure and ClojureScript using Vega and Vega-lite

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Support streaming data into a visualization via core.async chan

metasoarous opened this issue · comments

This issue is being peeled off from #95; Now that #167 has been resolved, it is possible to stream data into the visualization via the vega view API, using the :view-callback option of the reagent components. However, this is hardly straightforward or idiomatic.

It would be amazing if you could just stream data in via a core.async channel. There are a couple of ways this could work:

  • Simply pass a core.async chan in the data position of a vega(-lite) specification
  • Pass something like a :data-streams map to the reagent components mapping dataset names to channels
  • Both?

The :data-streams approach would allow you to kick off the visualization with an initial data payload. It's also worth noting that the view.insert API actually require you insert data by dataset name, but this could potentially abstracted over if we want to support the first option here.