This release is packed full of features and includes a general refactoring of how HoloViews renders widgets now built on top of the Panel library. Many thanks to the many contributors to this release either directly by submitting PRs or by reporting issues and making suggestions. Specifically we would like to thank @poplarShift, @jonmease, @flothesof, @julioasotodv, @ltalirz, @DancingQuanta, @ahuang, @kcpevey, @Jacob-Barkhak, @nluetts, @harmbuisman, @ceball, @mgsnuno, @srp3003, @jsignell as well as the maintainers @jbednar, @jlstevens and @philippjfr for contributing to this release. This version includes the addition of a large number of features, enhancements and bug fixes:
Major features:
- Add
link_selectionto make custom linked brushing simple (#3951) link_selectionbuilds on new support for much more powerful data-transform pipelines: newDataset.transformmethod (#237, #3932),dimexpressions inDataset.select(#3920), arbitrary method calls ondimexpressions (#4080), andDataset.pipelineandDataset.datasetproperties to track provenance of data- Add Annotators to allow easily drawing, editing, and annotating visual elements (#1185)
- Completely replaced custom Javascript widgets with Panel-based widgets allowing for customizable layout (#84, #805)
- Add
HSpan,VSpan,Slope,SegmentsandRectangleselements (#3510, #3532, #4000) - Add support for cuDF GPU dataframes, cuPy backed xarrays, and GPU datashading (#3982)
Other features
- Add spatialpandas support and redesigned geometry interfaces for consistent roundtripping (#4120)
- Support GIF rendering with Bokeh and Plotly backends (#2956 #4017)
- Support for Plotly
Bars,Bounds,Box,Ellipse,HLine,Histogram,RGB,VLineandVSpanplots - Add
UniformNdMapping.collapseto collapse nested datastructures (#4250) - Add
CurveEditandSelectionXYstream (#4119, #4167) - Add
apply_whenhelper to conditionally apply operations (#4289) - Display Javascript callback errors in the notebook (#4119)
- Add support for linked streams in Plotly backend to enable rich interactivity (#3880, #3912)
Enhancements:
- Support for packed values dimensions, e.g. 3D
RGB/HSVarrays (#550, #3983) - Allow selecting/slicing datetimes with strings (#886)
- Support for datashading
Area,Spikes,SegmentsandPolygons(#4120) HeatMapnow supports mixed categorical/numeric axes (#2128)- Use
__signature__to generate .opts tab completions (#4193) - Allow passing element-specific keywords through
datashadeandrasterize(#4077, #3967) - Add
per_elementflag to.applyaccessor (#4119) - Add
selectedplot option to control selected glyphs in bokeh (#4281) - Improve default
Sankeynode_paddingheuristic (#4253) - Add
hooksplot option for Plotly backend (#4157) - Support for split
Violinplots in bokeh (#4112)
Bug fixes:
- Fixed radial
HeatMapsizing issues (#4162) - Switched to Panel for rendering machinery fixing various export issues (#3683)
- Handle updating of user supplied
HoverToolin bokeh (#4266) - Fix issues with single value datashaded plots (#3673)
- Fix legend layout issues (#3786)
- Fix linked axes issues with mixed date, categorical and numeric axes in bokeh (#3845)
- Fixed handling of repeated dimensions in
PandasInterface(#4139) - Fixed various issues related to widgets (#3868, #2885, #1677, #3212, #1059, #3027, #3777)
Library compatibility:
Migration notes:
- Geometry
.ilocnow indexes by geometry instead of by datapoint. Convert to dataframe or dictionary before using.ilocto access individual datapoints (#4104) - Padding around plot elements is now enabled by default, to revert set
hv.config.node_padding = 0(#1090) - Removed Bars
group_indexandstack_indexoptions, which are now controlled using thestackedoption (#3985) .tableis deprecated; use.collapsemethod instead and cast toTable(#3985)HoloMap.split_overlaysis deprecated and is now a private method (#3985)Histogram.edgesandHistogram.valuesproperties are deprecated; usedimension_values(#3985)Element.collapse_datais deprecated; use the container's.collapsemethod instead (#3985)hv.outputfilenameargument is deprecated; usehv.saveinstead (#3985)