**April 17, 2018**
This is a major release with a large number of new features and bug
fixes, as well as a small number of API changes. Many thanks to the
numerous users who filed bug reports, tested development versions, and
contributed a number of new features and bug fixes, including special
thanks to mansenfranzen, ea42gh, drs251 and jakirkham.
JupyterLab support:
- Full compatibility with JupyterLab when installing the
jupyterlab_holoviews extension
([687](https://github.com/pyviz/holoviews/issues/687))
New components:
- Added [`Sankey` element](http://holoviews.org/reference/elements/bokeh/Sankey.html)
to plot directed flow graphs
([1123](https://github.com/pyviz/holoviews/issues/1123))
- Added [`TriMesh` element](http://holoviews.org/reference/elements/bokeh/TriMesh.html)
and datashading operation to plot small and large irregular meshes
([2143](https://github.com/pyviz/holoviews/issues/2143))
- Added a [`Chord` element](http://holoviews.org/reference/elements/bokeh/Chord.html)
to draw flow graphs between different
nodes ([2137](https://github.com/pyviz/holoviews/issues/2137),
[2143](https://github.com/pyviz/holoviews/pull/2143))
- Added [`HexTiles` element](http://holoviews.org/reference/elements/bokeh/HexTiles.html)
to plot data binned into a hexagonal grid
([1141](https://github.com/pyviz/holoviews/issues/1141))
- Added [`Labels` element](http://holoviews.org/reference/elements/bokeh/Labels.html)
to plot a large number of text labels at once (as data rather than as annotations)
([1837](https://github.com/pyviz/holoviews/issues/1837))
- Added [`Div` element](http://holoviews.org/reference/elements/bokeh/Div.html)
to add arbitrary HTML elements to a Bokeh layout
([2221](https://github.com/pyviz/holoviews/issues/2221))
- Added
[`PointDraw`](http://holoviews.org/reference/streams/bokeh/PointDraw.html),
[`PolyDraw`](http://holoviews.org/reference/streams/bokeh/PolyDraw.html),
[`BoxEdit`](http://holoviews.org/reference/streams/bokeh/BoxEdit.html), and
[`PolyEdit`](http://holoviews.org/reference/streams/bokeh/PolyEdit.html)
streams to allow drawing, editing, and annotating glyphs on a Bokeh
plot, and syncing the resulting data to Python
([2268](https://github.com/pyviz/holoviews/issues/2459))
Features:
- Added [radial `HeatMap`](http://holoviews.org/reference/elements/bokeh/RadialHeatMap.html)
option to allow plotting heatmaps with a cyclic x-axis
([2139](https://github.com/pyviz/holoviews/pull/2139))
- All elements now support declaring bin edges as well as centers
allowing `Histogram` and `QuadMesh` to become first class
`Dataset` types
([547](https://github.com/pyviz/holoviews/issues/547))
- When using widgets, their initial or default value can now be
set via the `Dimension.default` parameter
([704](https://github.com/pyviz/holoviews/issues/704))
- n-dimensional Dask arrays are now supported directly via the gridded
dictionary data interface
([2305](https://github.com/pyviz/holoviews/pull/2305))
- Added new [Styling Plots](http://holoviews.org/user_guide/Styling_Plots.html)
and [Colormaps](http://holoviews.org/user_guide/Colormaps.html)
user guides, including new functionality for working with colormaps.
Enhancements:
- Improvements to exceptions
([1127](https://github.com/pyviz/holoviews/issues/1127))
- Toolbar position and merging (via a new `merge_toolbar`
option) can now be controlled for Layout and Grid plots
([1977](https://github.com/pyviz/holoviews/issues/1977))
- Bokeh themes can now be applied at the renderer level
([1861](https://github.com/pyviz/holoviews/issues/1861))
- Dataframe and Series index can now be referenced by name when
constructing an element
([2000](https://github.com/pyviz/holoviews/issues/2000))
- Option-setting methods such as `.opts`, `.options` and
`hv.opts` now allow specifying the backend instead of defaulting
to the current backend
([1801](https://github.com/pyviz/holoviews/issues/1801))
- Handled API changes in streamz 0.3.0 in Buffer stream
([2409](https://github.com/pyviz/holoviews/issues/2409))
- Supported GIF output on windows using new Matplotlib pillow
animation support
([385](https://github.com/pyviz/holoviews/issues/385))
- Provided simplified interface to `rasterize` most element types
using datashader
([2465](https://github.com/pyviz/holoviews/pull/2465))
- `Bivariate` element now support `levels` as a plot option
([2099](https://github.com/pyviz/holoviews/issues/2099))
- `NdLayout` and `GridSpace` now consistently support `*`
overlay operation
([2075](https://github.com/pyviz/holoviews/issues/2075))
- The Bokeh backend no longer has a hard dependency on Matplotlib
([829](https://github.com/pyviz/holoviews/issues/829))
- `DynamicMap` may now return (`Nd`)`Overlay` with varying
number of elements
([1388](https://github.com/pyviz/holoviews/issues/1388))
- In the notebook, deleting or re-executing a cell will now delete
the plot and clean up any attached streams
([2141](https://github.com/pyviz/holoviews/issues/2141))
- Added `color_levels` plot option to set discrete number of levels
during colormapping
([2483](https://github.com/pyviz/holoviews/pull/2483))
- Expanded the [Large Data](http://holoviews.org/user_guide/Large_Data.html)
user guide to show examples of all Element and Container types
supported for datashading and give performance guidelines.
Fixes:
- `Layout` and `Overlay` objects no longer create lower-case nodes
on attribute access
([2331](https://github.com/pyviz/holoviews/pull/2331))
- `Dimension.step` now correctly respects both integer and float
steps ([1707](https://github.com/pyviz/holoviews/issues/1707))
- Fixed timezone issues when using linked streams on datetime axes
([2459](https://github.com/pyviz/holoviews/issues/2459))
Changes affecting backwards compatibility:
- Image elements now expect and validate regular sampling
([1869](https://github.com/pyviz/holoviews/issues/1869)); for
genuinely irregularly sampled data QuadMesh should be used.
- Tabular elements will no longer default to use `ArrayInterface`,
instead preferring pandas and dictionary data formats
([1236](https://github.com/pyviz/holoviews/issues/1236))
- `Cycle`/`Palette` values are no longer zipped together; instead
they now cycle independently
([2333](https://github.com/pyviz/holoviews/pull/2333))
- The default color `Cycle` was expanded to provide more unique colors
([2483](https://github.com/pyviz/holoviews/pull/2483))
- Categorical colormapping was made consistent across backends,
changing the behavior of categorical Matplotlib colormaps
([2483](https://github.com/pyviz/holoviews/pull/2483))
- Disabled auto-indexable property of the Dataset baseclass, i.e. if a
single column is supplied no integer index column is added
automatically ([2522](https://github.com/pyviz/holoviews/pull/2522))