Expose available options and their values in more accessible way
- Dominant language
- Python
- Stars
- 1.4k
- Forks
- 124
- Avg merge
- 1d 18h
- Merged PRs (30d)
- 1
Description
There are now several ongoing efforts to write GUI libraries on top of hvplot. What all of these have in common is that they need to declare the available options for each plot type and then expose the available values. hvplot makes some of this information available on the HoloViewsConverter class but not in any complete, structured or principled way. We should therefore establish what information is needed by a GUI, so I'll start by listing the information that's needed here and then we can discuss how to structure it in a useful way:
* The available style options for each plot type (e.g. color, alpha, size etc.)
* The available axis/plot options (e.g. width, height, legend, xlabel, ylabel, color and axis ranges etc.)
* For each of the options a specification of the allowed values would be useful (e.g. the numeric bounds or list of values)
* Some options are mutually exclusive, e.g. you can't currently plot multiple y columns and also group by another column, information on options clashing should be exposed somehow
A lot of this information is available in HoloViews already and maybe hvplot could simply provide a simple API to expose it. Finally there is the more complicated problem of pre-populating some widgets with the automatic defaults, e.g. for a ``clim`` widget you probably want to access the default range, and similarly for an xlabel you want to actually populate the widget with the default. It may make sense for hvplot to provide an API to compute defaults without actually creating the plot.
For context [dfviz](https://github.com/martindurant/dfviz/blob/master/dfviz/widget.py) is an initial attempt at building a GUI for exploring dataframes visually built on top of hvplot.
Cc: @martindurant
Contributor guide
Assessment
This issue has not been assessed yet.