livebook-dev / kino_vega_lite

Vega-Lite (graphics) integration for Livebook
Apache License 2.0
26 stars 8 forks source link

Add suggestions/gallery #33

Closed josevalim closed 1 year ago

josevalim commented 1 year ago

We should be able to click a smart cell button that, based on the chosen variable, will generate suggestions of different charts, using different or the chosen columns, with different type charts and so on.

The "Lux: Always-on Visualization Recommendations for Exploratory Data Science" paper has interesting ideas around this.

josevalim commented 1 year ago

Visually speaking, we will have a button on the VegaLite cell that says "Chart suggestions". Clicking this button will change the smart cell to a design where we have a "pill" for each column at the top. If the pill is enabled, then we will use that column for suggestions. If disabled, the column cannot be used for suggestions.

It is also very important to send the data from the server only once and not on every chart. The Lux paper has heuristics that we can use to better determine columns and graphs. The heuristics can likely be implemented in Elixir instead of JS. Elixir will then send the possible charts to generate (alongside with the data once, which will be transferred as soon as "Chart suggestions" is clicked).

josevalim commented 1 year ago

We won't be exploring this idea for now.