Suggestion for the new website structure:
Adopt Diataxis
Focus on the Reference and Gallery
Bokeh and Matplotlib (not always though), Plotly excluded for now
Landing page
Tutorials
How-To
Good place to include HoloViews features (e.g. linked selections, dual axis, .opts) not yet exposed directly in hvPlot.
Gallery
1 example per card
Mostly rather simple examples
No need to reinvent the wheel, copy what we have, and draw inspiration from https://plotly.com/python/line-and-scatter/ , https://plotly.com/python/line-and-scatter/ , ...
The majority of the subsections are plot categories (e.g. Scatter plots, Bar plots, Maps) but not limited (e.g. Interactivity, Streaming, Panel app)
The first section is Plot types with one card per plot type (area, bar, scatter_matrix, etc.), like https://matplotlib.org/stable/plot_types/index.html
Each example has link(s) to the Reference API
Add one or more data sources when relevant (xarray as a priority, geopandas)
Label examples with (like Demetris did on examples.holoviz.org, or with the sphinx_tags extension like Matplotlib, or custom):
Data type (e.g. tabular, gridded)
Data source (e.g. pandas, polars, xarray)
More?
Two plotting backends supported: Bokeh and Matplotlib
One reference file assumed to be Bokeh (file per backend proved painful to maintain in HoloViews)
Code to convert an example to Matplotlib (e.g. adding hvplot.extension('matplotlib'), maybe more)
Possibility to override a Matplotlib example, declare exclusion of a Matplotlib example, only have a Matplotlib example
The test suite should run the Bokeh and the Matplotlib examples
How to display TBD (like HoloViews with multiple pages vs. each page contains the two examples, in tabs maybe)
Additional:
Reference
Layout:
Installation: list all the ways hvPlot can be installed
Integrations: list all the integrations (this page basically https://hvplot.holoviz.org/user_guide/Integrations.html )
Generic API: register (pd.options.plotting.backend vs import hvplot.), display (save, show, extension, output, ...), help, ...
plot/hvplot API:
scatter
line
text
explorer
...
Plot options: Tables of the plot options, each header being a link to a sub-page with plot examples
See below for how to potentially break down the generic options
Resampling / Datashading options
Geographic options
Top-level plot API: andrews_curves, lag_plot, parallel_coordinates, scatter_matrix
NetworkX API
Explorer API
Interactive API
Content of:
plot/hvplot API:
Plot options
Categories of plot options:
Check the lists in the HoloViewsConverter class (e.g. _axis_options, _geo_options).
Or this:
Example of subcategories for the generic options (from ChatGPT)
Axes and Scaling
autorange
flip_xaxis / flip_yaxis
logx / logy
logz
loglog
invert
padding
shared_axes
sort_date
symmetric
check_symmetric_max
Color and Colormaps
clim
cnorm
colorbar
logz
rescale_discrete_levels
robust
Labels and Titles
xlabel / ylabel / clabel
title
attr_labels
Fonts and Formatting
fontscale
fontsize
legend
rot
xformatter / yformatter
Grid and Layout
bgcolor
grid
frame_width / frame_height
max_width / max_height
min_width / min_height
responsive
width / height
Interactivity and Tools
hover
hover_cols
hover_formatters
hover_tooltips
tools
subcoordinate_y
transforms
Ticks and Limits
xaxis / yaxis
xlim / ylim
xticks / yticks / cticks
Additional:
Explanation
Suggestion for the new website structure:
Landing page
Tutorials
How-To
Good place to include HoloViews features (e.g. linked selections, dual axis, .opts) not yet exposed directly in hvPlot.
Gallery
The majority of the subsections are plot categories (e.g. Scatter plots, Bar plots, Maps) but not limited (e.g. Interactivity, Streaming, Panel app)
The first section is
Plot typeswith one card per plot type (area, bar, scatter_matrix, etc.), like https://matplotlib.org/stable/plot_types/index.htmlhvplot.extension('matplotlib'), maybe more)Additional:
Reference
Layout:
Content of:
plot/hvplot API:
Plot options
Categories of plot options:
HoloViewsConverterclass (e.g._axis_options,_geo_options).Example of subcategories for the generic options (from ChatGPT)
autorange
flip_xaxis / flip_yaxis
logx / logy
logz
loglog
invert
padding
shared_axes
sort_date
symmetric
check_symmetric_max
clim
cnorm
colorbar
logz
rescale_discrete_levels
robust
xlabel / ylabel / clabel
title
attr_labels
fontscale
fontsize
legend
rot
xformatter / yformatter
bgcolor
grid
frame_width / frame_height
max_width / max_height
min_width / min_height
responsive
width / height
hover
hover_cols
hover_formatters
hover_tooltips
tools
subcoordinate_y
transforms
xaxis / yaxis
xlim / ylim
xticks / yticks / cticks
Additional:
Explanation