This release introduces a number of major new features and enhancements, including the ability to add popups to your Bokeh figures, which allows you to drill down into subsets of your data easily.
Additionally, this release retains and uses pandas (multi-)indexes without unnecessary copies, providing significant benefits for working with wide data.
A major focus of this release has also been to improve the time it takes to plot large datasets, both by updating the data pipeline and reducing the amount of data send to the browser.
Furthermore, we have improved the developer experience, making it easier to contribute to HoloViews, see the developer guide.
Lastly bugs have been squashed and enhancements made to the existing features.
Thank you to @mirage007 and @WesleyTheGeolien for their first contributions and to the returning contributors @douglas-raillard-arm, @jj-github-jj, and @TheoMathurin.
Another thanks to the maintainers @ahuang11, @droumis, @maximlt, @philippjfr, and @hoxbro.
New features
Enhancements
- Override Curve's count aggregator default to
self_intersect=False(#6030) - Zoom tools automatically vertically scaled on
subcoordinate_yoverlays (#6051) - Use
tsdownsamplelibrary for downsampling if available (#6059, #6083) - Add viewport downsample algorithm (#6017)
- Optimize
downsample1dwhen data is shared between layers (#6075) - Support dictionary cmaps for
ImageStack(#6025) - Expose
hit_dilationinPointPlot(#6121) - Improve autocompletion for lazy module (#6174)
Subcoordinate_y: reverse the renderers by default (#6194)- Add
hover_tooltips,hover_mode,hover_formattersopts to easily modify hover (#6180) - Expose setting hard navigable bounds (#6056)
- Add a zoom tool per
subcoordinate_ygroup (#6122) - Support all Bokeh Text style opts in
hv.Labelsandhv.Text(#6198) - Implement support for retaining
Pandasindex (#6061) - Add operation for group-wise normalisation (#6124)
- Allow Bars to be plotted on continuous axes (#6145)
- Add
min_intervalandmax_intervalto theRangeToolLink(#6134) - Add support for rasterizing
geopandasdataframes directly (#5958) - Allow options for non-enabled backends (#6196)
- Support
ImageStackin dynspread (#6024) - Add support for
cticks(#6257) - Support title font size in Plotly backend (#5920)
- Hold rendering until a plot has been fully updated (#6265)
- Make
Dimension.labelsource of truth for Dimension identity (#6262) - Allow subcoordinates to be drawn from NdOverlay dimensions (#6209)
- Add stream transform (#6230)
Bug fixes
- Don't show figures toolbar on
GridSpace(#6127) - Update merge_tool (#6141)
- Don't raise
KeyErrorif options don't contain None (#6153) - Force vdims to strings for
ImageStack(#6155) - Fixes to Bokeh
BoxWhisker(#6169) - Improve groupby behavior for operation
histogram(#6172) - Ensure plot ranges for all renderers are combined in auto-ranging (#6173)
- Ensure that the downsample algorithm
m4n_out is always a multiple of 4 (#6195) - Subcoordinate_y: respect
ylim(#6190) - Bug fix for player example pause button (#6212)
- Clone if a Tool is as Bokeh model (#6220)
- Fix violin plot in
Plotly(#6237) - Don't error on
TypeErrorinDaskInterfacewhen sorting (#6221) - Fix
hv.helpifInfo.storeisNone(#6250) - Change how upper limit is taken for
color_levels(#4898) - Fix vectorfield hover (#6258)
- Ensure Range streams and
RangeToolLinkrespect subcoordinate axis range (#6256) - Fix pickling state (#6245)
- Fix colab rendering (#6269)
- Disable batching when
subcoordinate_yis enabled (#6272) - Ensure downsample works with non-contiguous arrays (#6271)
- Fix issue with range lookups in (y)-axis creation (#6274)
Dependencies updates
- Update
paramminimum version to 2.0 (#6230) - Update
numpy >=1.21,pandas >= 1.3, andBokeh >=3.1(#6253)
Compatibility
- Update test for Bokeh 3.4 (#6130)
- Test with dask-expr (#6259, #6149)
- Numpy 2.0 compatibility (#6238)
- Update to support cudf 2024.06 (#6263)
Documentation
- Minor typos (#6179, #6193)
- Update CSS for documentation (#6228)
- Fix links (#6246, #6036)
- Document
subcoordinate_group_rangesby extending the EEG Viewer demo (#6243)
Maintenance
- Switch to Pixi for development / CI and hatchling for build system (#6182, #6200, #6251)
- Add
test-gputask for Pixi (#6217) - Add
sync-git-tagstask to Pixi for sync git tags with upstream repo (#6215) - Parallelize unit test (#6234)
- Use
psutilforpytest-xdistlogicaloption (#6213) - Bump CI tests to use Python 3.12 (#5978)
- Only run test-suite on code change (#6035)
- Add skip statement to all steps to work with required (#6037)
- Add true if inputs.cache is not set (#6050)
- Dynamic generate unit test matrix and add cache option (#6043)
- Add prettier to markdown and yaml (#6040)
- Add taplo as toml formatter (#6227)
- Disable always on warnings (#6077)
- Updating Package workflow to a build and a publish step (#6031)
- Use the new conda package format (#6216)