**March 20, 2020**
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_selection` to make custom linked brushing simple
([3951](https://github.com/holoviz/holoviews/pull/3951))
- `link_selection` builds on new support for much more powerful
data-transform pipelines: new `Dataset.transform` method
([237](https://github.com/holoviz/holoviews/pull/237),
[3932](https://github.com/holoviz/holoviews/pull/3932)), `dim`
expressions in `Dataset.select`
([3920](https://github.com/holoviz/holoviews/pull/3920)), arbitrary
method calls on `dim` expressions
([4080](https://github.com/holoviz/holoviews/pull/4080)), and
`Dataset.pipeline` and `Dataset.dataset` properties to track
provenance of data
- Add Annotators to allow easily drawing, editing, and annotating visual
elements ([1185](https://github.com/holoviz/holoviews/pull/1185))
- Completely replaced custom Javascript widgets with Panel-based widgets
allowing for customizable layout
([84](https://github.com/holoviz/holoviews/pull/84),
[805](https://github.com/holoviz/holoviews/pull/805))
- Add `HSpan`, `VSpan`, `Slope`, `Segments` and `Rectangles` elements
([3510](https://github.com/holoviz/holoviews/pull/3510),
[3532](https://github.com/holoviz/holoviews/pull/3532),
[4000](https://github.com/holoviz/holoviews/pull/4000))
- Add support for cuDF GPU dataframes, cuPy backed xarrays, and GPU
datashading ([3982](https://github.com/holoviz/holoviews/pull/3982))
Other features
- Add spatialpandas support and redesigned geometry interfaces for
consistent roundtripping
([4120](https://github.com/holoviz/holoviews/pull/4120))
- Support GIF rendering with Bokeh and Plotly backends
([2956](https://github.com/holoviz/holoviews/pull/2956),
[4017](https://github.com/holoviz/holoviews/pull/4017))
- Support for Plotly `Bars`, `Bounds`, `Box`, `Ellipse`, `HLine`,
`Histogram`, `RGB`, `VLine` and `VSpan` plots
- Add `UniformNdMapping.collapse` to collapse nested datastructures
([4250](https://github.com/holoviz/holoviews/pull/4250))
- Add `CurveEdit` and `SelectionXY` streams
([4119](https://github.com/holoviz/holoviews/pull/4119),
[4167](https://github.com/holoviz/holoviews/pull/4167))
- Add `apply_when` helper to conditionally apply operations
([4289](https://github.com/holoviz/holoviews/pull/4289))
- Display Javascript callback errors in the notebook
([4119](https://github.com/holoviz/holoviews/pull/4119))
- Add support for linked streams in Plotly backend to enable rich
interactivity
([3880](https://github.com/holoviz/holoviews/pull/3880),
[3912](https://github.com/holoviz/holoviews/pull/3912))
Enhancements:
- Support for packed values dimensions, e.g. 3D `RGB`/`HSV` arrays
([550](https://github.com/holoviz/holoviews/pull/550),
[3983](https://github.com/holoviz/holoviews/pull/3983))
- Allow selecting/slicing datetimes with strings
([886](https://github.com/holoviz/holoviews/pull/886))
- Support for datashading `Area`, `Spikes`, `Segments` and `Polygons`
([4120](https://github.com/holoviz/holoviews/pull/4120))
- `HeatMap` now supports mixed categorical/numeric axes
([2128](https://github.com/holoviz/holoviews/pull/2128))
- Use `__signature__` to generate .opts tab completions
([4193](https://github.com/holoviz/holoviews/pull/4193))
- Allow passing element-specific keywords through `datashade` and
`rasterize` ([4077](https://github.com/holoviz/holoviews/pull/4077))
([3967](https://github.com/holoviz/holoviews/pull/3967))
- Add `per_element` flag to `.apply` accessor
([4119](https://github.com/holoviz/holoviews/pull/4119))
- Add `selected` plot option to control selected glyphs in bokeh
([4281](https://github.com/holoviz/holoviews/pull/4281))
- Improve default `Sankey` `node_padding` heuristic
([4253](https://github.com/holoviz/holoviews/pull/4253))
- Add `hooks` plot option for Plotly backend
([4157](https://github.com/holoviz/holoviews/pull/4157))
- Support for split `Violin` plots in bokeh
([4112](https://github.com/holoviz/holoviews/pull/4112))
Bug fixes:
- Fixed radial `HeatMap` sizing issues
([4162](https://github.com/holoviz/holoviews/pull/4162))
- Switched to Panel for rendering machinery fixing various export issues
([3683](https://github.com/holoviz/holoviews/pull/3683))
- Handle updating of user supplied `HoverTool` in bokeh
([4266](https://github.com/holoviz/holoviews/pull/4266))
- Fix issues with single value datashaded plots
([3673](https://github.com/holoviz/holoviews/pull/3673))
- Fix legend layout issues
([3786](https://github.com/holoviz/holoviews/pull/3786))
- Fix linked axes issues with mixed date, categorical and numeric axes
in bokeh ([3845](https://github.com/holoviz/holoviews/pull/3845))
- Fixed handling of repeated dimensions in `PandasInterface`
([4139](https://github.com/holoviz/holoviews/pull/4139))
- Fixed various issues related to widgets
([3868](https://github.com/holoviz/holoviews/pull/3868),
[2885](https://github.com/holoviz/holoviews/pull/2885),
[1677](https://github.com/holoviz/holoviews/pull/1677),
[3212](https://github.com/holoviz/holoviews/pull/3212),
[1059](https://github.com/holoviz/holoviews/pull/1059),
[3027](https://github.com/holoviz/holoviews/pull/3027),
[3777](https://github.com/holoviz/holoviews/pull/3777))
Library compatibility:
- Better support for Pandas 1.0
([4254](https://github.com/holoviz/holoviews/pull/4254))
- Compatibility with Bokeh 2.0
([4226](https://github.com/holoviz/holoviews/pull/4226))
Migration notes:
- Geometry `.iloc` now indexes by geometry instead of by
datapoint. Convert to dataframe or dictionary before using `.iloc` to
access individual datapoints
([4104](https://github.com/holoviz/holoviews/pull/4104))
- Padding around plot elements is now enabled by default, to revert set
`hv.config.node_padding = 0`
([1090](https://github.com/holoviz/holoviews/pull/1090))
- Removed Bars `group_index` and `stack_index` options, which are now
controlled using the `stacked` option
([3985](https://github.com/holoviz/holoviews/pull/3985))
- `.table` is deprecated; use `.collapse` method instead and cast to
`Table` ([3985](https://github.com/holoviz/holoviews/pull/3985))
- `HoloMap.split_overlays` is deprecated and is now a private method
([3985](https://github.com/holoviz/holoviews/pull/3985))
- `Histogram.edges` and `Histogram.values` properties are deprecated; use
`dimension_values`
([3985](https://github.com/holoviz/holoviews/pull/3985))
- `Element.collapse_data` is deprecated; use the container's `.collapse`
method instead
([3985](https://github.com/holoviz/holoviews/pull/3985))
- `hv.output` `filename` argument is deprecated; use `hv.save` instead
([3985](https://github.com/holoviz/holoviews/pull/3985))