Version 1.19.0
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_y
overlays (#6051) - Use
tsdownsample
library for downsampling if available (#6059, #6083) - Add viewport downsample algorithm (#6017)
- Optimize
downsample1d
when data is shared between layers (#6075) - Support dictionary cmaps for
ImageStack
(#6025) - Expose
hit_dilation
inPointPlot
(#6121) - Improve autocompletion for lazy module (#6174)
Subcoordinate_y
: reverse the renderers by default (#6194)- Add
hover_tooltips
,hover_mode
,hover_formatters
opts to easily modify hover (#6180) - Expose setting hard navigable bounds (#6056)
- Add a zoom tool per
subcoordinate_y
group (#6122) - Support all Bokeh Text style opts in
hv.Labels
andhv.Text
(#6198) - Implement support for retaining
Pandas
index (#6061) - Add operation for group-wise normalisation (#6124)
- Allow Bars to be plotted on continuous axes (#6145)
- Add
min_interval
andmax_interval
to theRangeToolLink
(#6134) - Add support for rasterizing
geopandas
dataframes directly (#5958) - Allow options for non-enabled backends (#6196)
- Support
ImageStack
in 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.label
source 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
KeyError
if 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
m4
n_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
TypeError
inDaskInterface
when sorting (#6221) - Fix
hv.help
ifInfo.store
isNone
(#6250) - Change how upper limit is taken for
color_levels
(#4898) - Fix vectorfield hover (#6258)
- Ensure Range streams and
RangeToolLink
respect subcoordinate axis range (#6256) - Fix pickling state (#6245)
- Fix colab rendering (#6269)
- Disable batching when
subcoordinate_y
is enabled (#6272) - Ensure downsample works with non-contiguous arrays (#6271)
- Fix issue with range lookups in (y)-axis creation (#6274)
Dependencies updates
- Update
param
minimum 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_ranges
by extending the EEG Viewer demo (#6243)
Maintenance
- Switch to Pixi for development / CI and hatchling for build system (#6182, #6200, #6251)
- Add
test-gpu
task for Pixi (#6217) - Add
sync-git-tags
task to Pixi for sync git tags with upstream repo (#6215) - Parallelize unit test (#6234)
- Use
psutil
forpytest-xdist
logical
option (#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)