holoviz / hvplot

A high-level plotting API for pandas, dask, xarray, and networkx built on HoloViews
https://hvplot.holoviz.org
BSD 3-Clause "New" or "Revised" License
1.13k stars 108 forks source link

.interactive() form #883

Open MarcSkovMadsen opened 2 years ago

MarcSkovMadsen commented 2 years ago

Currently .interactive() assumes your pipeline is relatively fast. It will update every time you change a widget just a little bit.

But pipelines can be slow. It could be for example a machine-learning pipeline. Or a pipeline that starts with .bind() to load a lot of data from a slow database.

And if a user wants to change multiple widgets then it annoying with extra waiting time because the pipeline needs to run for each individual change.

Instead of updating on every change of one of the widgets a much better user interface in this case would be a form that only updates when the user clicks run, submit, train or similar.

An api could look like

.interactive(form=True)

And then a button would be added and the dependencies to the widgets would be changed.

Illustrative Example

image

Additional Info

maximlt commented 2 years ago

Sounds like a very valid feature request to me, without it in some scenarios .interactive would basically be unusable.