This release has been nearly a year in the making, with major new contributions from Ian Thomas, Thuy Do Thi Minh, Simon Høxbro Hansen, Maxime Liquet, and James Bednar, and additional support from Andrii Oriekhov, Philipp Rudiger, and Ajay Thorve.
Enhancements:
- Full support for antialiased lines of specified width (#1048, #1072). Previous antialiasing support was limited to single-pixel lines and certain floating-point reduction functions. Now supports arbitrary widths and arbitrary reduction functions, making antialiasing fully supported. Performance ranges from 1.3x to 14x slower than the simplest zero-width implementation; see benchmarks.
- Fixed an issue with visibility on zoomed-in points plots and on overlapping line plots that was first reported in 2017, with a new option
rescale_discrete_levels
forhow='eq_hist'
(#1055) - Added a categorical color_key for 2D (unstacked) aggregates (#1020), for producing plots where each pixel has at most one category value
- Improved docs:
- A brand new polygons guide (#1071)
- A new guide to 3D aggregations using
by
, now documenting usingcategorizer
objects to do 3D numerical binning (#1071) - Moved documentation for spreading to its own section so it can be presented at the right pipeline stage (was mixed up with colormapping before) (#1071)
- Added rescale_discrete_levels example (#1071)
- Other misc doc cleanup (#1035, #1037, #1058, #1074, #1077)
Bugfixes:
- Fixed details of the raster coordinate calculations to match other primitives, making it simpler to overlay separately rendered results (#959, #1046)
- Various fixes and extensions for cupy/CUDA, e.g. to use cuda for category_binning, spread, and dynspread, including cupy.interp where appropriate (#1015, #1016, #1044, #1050, #1060)
- Infrastructure/build/ecosystem fixes (#1022, #1025, #1027, #1036, #1045, #1049, #1050, #1057, #1061, #1062, #1063, #1064)
Compatibility:
- Canvas.line() option
antialias=True
is now deprecated; useline_width=1
(or another nonzero value) instead. (#1048) - Removed long-deprecated bokeh_ext.py (#1059)
- Dropped support for Python 2.7 (actually already dropped from the tests in Datashader 0.12) and 3.6 (no longer supported by many downstream libraries like rioxarray, but several of them are not properly declaring that restriction, making 3.6 much more difficult to support.) (#1033)
- Now tested on Python 3.7, 3.8, 3.9, and 3.10. (#1033)