---------------------------
This release includes major contributions from `maihde <https://github.com/maihde>`_ (generalizing ``count_cat`` to ``by`` span for colorize), `jonmmease <https://github.com/jonmmease>`_ (Dask quadmesh support), `philippjfr <https://github.com/philippjfr>`_ and `jbednar <https://github.com/jbednar>`_ (count_cat/by/colorize/docs/bugfixes), and Barry Bragg, Jr. (TMS tileset speedups).
New features (see ``getting_started/2_Pipeline.ipynb`` for examples):
- New ``by()`` categorical aggregator, extending ``count_cat`` to work with other reduction functions, no longer just ``count``. Allows binning of aggregates separately per category value, so that you can compare how that aggregate is affected by category value. (`875 <https://github.com/holoviz/datashader/pull/875>`_, `#902 <https://github.com/holoviz/datashader/pull/902>`_, `#904 <https://github.com/holoviz/datashader/pull/904>`_, `#906 <https://github.com/holoviz/datashader/pull/906>`_). See example in the `holoviews docs <http://dev.holoviews.org/user_guide/Large_Data.html#Multidimensional-plots>`_.
- Support for negative and zero values in ``tf.shade`` for categorical aggregates. (`896 <https://github.com/holoviz/datashader/pull/896>`_, `#909 <https://github.com/holoviz/datashader/pull/909>`_, `#910 <https://github.com/holoviz/datashader/pull/910>`_, `#908 <https://github.com/holoviz/datashader/pull/908>`_)
- Support for ``span`` in _colorize(). (`875 <https://github.com/holoviz/datashader/pull/875>`_, `#910 <https://github.com/holoviz/datashader/pull/910>`_)
- Support for Dask-based quadmesh rendering for rectilinear and curvilinear mesh types (`885 <https://github.com/holoviz/datashader/pull/885>`_, `#913 <https://github.com/holoviz/datashader/pull/913>`_)
- Support for GPU-based raster mesh rendering via ``Canvas.quadmesh`` (`872 <https://github.com/holoviz/datashader/pull/872>`_)
- Faster TMS tileset generation (`886 <https://github.com/holoviz/datashader/pull/886>`_)
- Expanded performance guide (`868 <https://github.com/holoviz/datashader/pull/868>`_)
Bugfixes:
- Misc bugfixes and improvements (`874 <https://github.com/holoviz/datashader/pull/874>`_, `#882 <https://github.com/holoviz/datashader/pull/882>`_, `#888 <https://github.com/holoviz/datashader/pull/888>`_, `#889 <https://github.com/holoviz/datashader/pull/889>`_, `#890 <https://github.com/holoviz/datashader/pull/890>`_, `#891 <https://github.com/holoviz/datashader/pull/891>`_)
Compatibility (breaking changes and deprecations):
- To allow negative-valued aggregates, count_cat now weights categories according to how far they are from the minimum aggregate value observed, while previously they were referenced to zero. Previous behavior can be restored by passing ``color_baseline=0`` to ``count_cat`` or ``by``
- ``count_cat`` is now deprecated and removed from the docs; use ``by(..., count())`` instead.
- Result of a ``count()`` aggregation is now ``uint32`` not ``int32`` to distinguish counts from other aggregation types (`910 <https://github.com/holoviz/datashader/pull/910>`_).
- tf.shade now only treats zero values as missing for ``count`` aggregates (``uint``; zero is otherwise a valid value distinct from NaN (`910 <https://github.com/holoviz/datashader/pull/910>`_).
- ``alpha`` is now respected as the upper end of the alpha range for both _colorize() and _interpolate() in tf.shade; previously only _interpolate respected it.
- Added new nansum_missing utility for working with Numpy>1.9, where nansum no longer returns NaN for all-NaN values.
- ds.geo and ds.spatial modules are now deprecated; their contents have moved to xarray_spatial and spatialpandas, respectively. (`894 <https://github.com/holoviz/datashader/pull/894>`_)
Download and install: https://datashader.org/getting_started