vega / altair

Declarative statistical visualization library for Python
https://altair-viz.github.io/
BSD 3-Clause "New" or "Revised" License
9.32k stars 795 forks source link

Add more features to `.interactive()`? #3393

Open joelostblom opened 7 months ago

joelostblom commented 7 months ago

What is your suggestion?

I'm wondering if it would be helpful if .interactive() did more by default. I'm primarily thinking about adding a tooltip (of the plotted encodings), and an interactive legend (based on opacity). There should of course be some way to turn these on/off, so that they don't interfere with manually set up bindings (maybe chart.interactive(legend=False).

Have you considered any alternative solutions?

No response

dangotbanned commented 1 week ago

User feedback

Cross-referencing some feedback I've seen in polars:

https://github.com/pola-rs/polars/pull/17995#issuecomment-2316605863

One advantage of hvplot / bokeh is the free interactivity. Altair does interactive too but I think only in a subset. Please consider having a config for interactivity.


https://github.com/pola-rs/polars/pull/17995#issuecomment-2319700036

@joelostblom Thanks for the links.

Yup, whenever it makes sense for it to be the default, at least I would prefer interactive becoming the default. It may not be acceptable for everyone, so whenever .interactive() is as mature as you'd like, bringing this up a poll/discussion in altair's repo will help understand what users want.


https://github.com/pola-rs/polars/pull/17995#issuecomment-2439144285

The new default plots from Altair have reduced the interactivity of plots. I've gone back to using hvplot because I struggled to get useful images out of Altair.

Was this a premature move considering Altair is missing essential features:

  • zoom to selection
  • resize plot
  • hover to show datapoint

Was the main intent to deliver a basic plotting experience without adding many dependencies?