Releases: holoviz/holoviews
Version 1.16.1
This release contains a small number of important bug fixes and enhancements. Many thanks to @philippjfr and @hoxbro.
This release includes a breaking change as notebooks will no longer be inlining as default. This change will reduce the size of the notebook files and, more importantly, address an upstream issue in Jupyter where running hv.extension
would give an error when used in a notebook.
Critical bug fixes and compatibility:
- Add
enable_mathjax
and set it and inline toFalse
(#5729) - Update to support Datashader on Python 3.11 (#5720)
Enhancements:
Hoxbro marked this conversation as resolved.
- Add
show_versions
helper function (#5725) - Ignore known model warning in VS Code (#5734)
- Add a workaround for plots where the objects in a figure would overlap (#5733)
Documentation:
Version 1.16.0
This release includes many new features, improvements, and bug fixes. Among the highlights are support for Bokeh 3.1 and Panel 1.0, both of which come with a wide range of new features and enhancements. Time series support has also been improved, with auto-ranging along one axis, a new downsample algorithm, and having WebGL enabled by default. In addition, the release includes various other enhancements and bug fixes.
We would like to thank the many users who contributed to this release by filing bug reports, providing new features, and bug fixes. We want to give a special shout-out to existing contributors @ianthomas23, @jlstevens, @jordansamuels, @maximlt, @philippjfr, @TheoMathurin, @Yura52, and @hoxbro, as well as new contributors @GeoVizNow, @JRRudy1, @keewis, @michaelaye, and @wendrul.
This minor version will be the last to support Python 3.7. The next minor version will require Python 3.8 or higher.
In the next release, holoviews.annotate
will start giving a deprecation warning about its future move to the new package HoloNote.
New features:
- Support for Bokeh 3.1 and Panel 1.0 (#5388, #5620, #5640, #5679, #5683, #5692, #5703)
- Implement auto-ranging support along one axis (#5554, #5609)
- Add Largest Triangle Three Buckets (LTTB) as a downsample algorithm (#5552)
- Enable WebGL by default (#5708)
Enhancements:
- Improve
legend_cols
support for Bokeh 3 (#5669) - Add convenience
getter
interface toopts
(#5606) - Ensure
.stack
works on areas with differentvdims
(#5693) - Add
muted
support toPointPlot
likehv.Scatter
(#5705) - Automatic detect
comms
without callingpn.extension()
(#5645) - Add support for extra
Hovertool
variables in a Bokeh'squadmesh
with 2D coordinates (with tests) (#5638) - Change
hv.Rectangles
to internally use BokehQuad
and notRect
to support logarithmic axis in WebGL (#5664, #5702)
Bug fixes:
- Ensure
spatial_select
in non-zero indexed DataFrame is applied right (#5625) - Fix error handling for plotting class lookups on empty
DynamicMap
/HoloMap
(#5604) - Fix
active_tools
to only be set for enabled tools (#5616) - Fix legend display when using categorical
datashade
on GPU (#5631) - Adding
GeoDataFrame
toDataConversion
(#5325) - Don't emit warnings when the toolbar is disabled (#5691)
- Don't try to find the closest match if the input is empty (#5700)
- Only use
long_name
if it is a string (#5646) - Use Matplotlib's public API to list the colormaps (#5598)
Compatibility:
- Add Param 2.0 support (#5667, #5641, #5680, #5704)
- Add Pandas 2.0 support (#5662)
- Update
types.functiontype
tocollections.abc.callable
(#5636) - Improve error message for categorical data when used with
datashade
(#5643) - Don't disable Jedi completion by default (#5701)
Documentation:
- Fix an incorrect number stated regarding available axis types (#5623)
- Fix
BoundsY
example (#5629) - Fix formatting on FAQ (#5630)
- Fix anchor links (#5677)
Maintenance:
- Use
clean-notebook
,codespell
, andruff
inpre-commit
(#5594, #5627, #5653) - General maintenance (#5607, #5611, #5612, #5649)
Known issues:
BoxEditTool
is not yet supported with the new internals ofhv.Rectangle
.
Version 1.15.4
This release contains a small number of enhancements and important bug fixes. Many thanks to our new contributors @mmorys, @jj-github-jj, and @sandhujasmine, but also our returning contributors @droumis, @jlstevens, @MarcSkovMadsen, @maximlt, @philippjfr, @stanwest, and @hoxbro.
Enhancements:
- Make lasso select mask values using a Dask-compatible method (#5568)
- Make plotly legend group unique (#5570)
- Set pan and wheel_zoom as the default Bokeh active tools (#5480)
- Enable rendering colorbars on bokeh
GraphPlot
s (#5585) - Add Plotly
Scatter3d
documentation and fix colorbar title (#5418)
Bug fixes:
- Only trigger range-update once in callbacks (#5558)
- Ensure dynamically created subplots can be updated (#5555)
- Fix start of stack-level in deprecations (#5569)
- When sorting colormap records, replace None with an empty string (#5539)
- Fix annotator in Geoviews by adding deserialization of non-deserialized base64 data (#5587)
- Fix
hv.Empty
not working inAdjointLayout
plot (#5584) - Check for categorical data to histogram (#5540)
- Fix
clim_percentile
(#5495)
Compatibility:
- Compatibility with Shapely 2.0 (#5561)
- Compatibility with Numpy 1.24 (#5581)
- Compatibility with Ibis 4.0 (#5588)
Documentation:
- Installation instructions update (#5562)
- Use OSM for reference tile source in notebook documentation (#5536)
- Enhance Tiles example notebook (#5563)
Maintenance:
Version 1.15.3
This release contains a small number of important bug fixes and adds support for Python 3.11. Many thanks to our maintainers @hoxbro, @maximlt and @jlstevens.
Bug Fixes:
- Fix for empty opts warning and incorrect clearing semantics (#5496)
- Fix potential race condition in the Options system (#5535)
Enhancements:
Documentation:
- Fixes to release notes and CHANGELOG (#5506)
Version 1.15.2
This release contains a small number of important bug fixes. Many thanks
to @stanwest for his contribution and thank you to our maintainers
@hoxbro, @maximlt, @jlstevens, @jbednar, and @philippjfr.
Bug fixes:
- Fix support for jupyterlite (#5502)
- Improve error message for
hv.opts
without a plotting backend (#5494) - Fix warnings exposed in CI logs (#5470)
- Thanks to @maximlt for various CI fixes (#5484, #5498, #5485)
Enhancement:
- Allow Dimension objects to accept a dictionary specification (#5333)
- Refactor to remove iterrows for loop from
connect_edges_pd
(#5473)
Deprecations:
Promoted DeprecationWarning
to FutureWarning
when using pandas
DataFrame
s with non-string column names. This will not change any
functionality but will start warning users about functionality that will
be deprecated in future.
- Upgrade warning for invalid dataframe column names (#5472)
Version 1.15.1
This release contains a small number of important bug fixes. Many thanks
to all our new contributors @MarcSkovMadsen, @j-svensmark, @ceball,
@droumis, @ddrinka, @Jhsmit and @stanwest as well as a special thanks to
@hoxbro for his many bug fixes. An additional thank you goes out to
@maximlt, @philippjfr, @jbednar and @jlstevens for ongoing maintenance
and support.
Enhancements:
- Sort output of
decimate
operation so that it can be used with connected Elements
(Curve, Area, etc.) (#5452) - Ensure HoloViews is importable from a pyodide webworker (#5410)
- Add support for stepwise Area plots (#5390)
- Better error message for
hv.Cycle
when incompatible backend activated (#5379) - Improvements to VSCode notebook support (#5398)
- Protect matplotlib tests from global styles (#5311)
- Faster hashing for arrays and pandas objects (#5455)
- Add pre-commit hooks to CI actions and fixes to pytest configuration (#5385, #5440)
Bug Fixes:
- Allow import of numpy 1.12 (#5367)
- Fixes handling of iterables in Overlays (#5320)
- Always return a string when using
hv.Dimension.pprint_value
(#5383) - Support widgets in slices for
loc
andiloc
(#5352) - Take account of labeled dimension in Bokeh plotting classes (#5404)
- Fix handling of pandas
Period
ranges (#5393) - Fixed declaration of
Scatter
toSelection1DExpr
(#5413) - Ensure rangesupdate event fires on all plots with linked axes (#5465)
- Fixed fallback to shapely spatial select (#5468)
- Many thanks to @hoxbro for many miscellaneous plotting fixes,
including fixes to plotting ofBoxWhisker
,VectorField
elements (#5397, #5450, #5400, #5409, #5460)) - Fixes to documentation building GitHub Action (#5320, (#5320))
Documentation:
- Introduced module documentation (#5362)
- Remove Python 2 references from README (#5365)
- Update call to panel add_periodic_callback in Bokeh gallery example (#5436)
- Added reference to example in
RangeToolLink
(#5435)
API:
In future, HoloViews will not allow non-string values for pandas
DataFrame column names. This deprecation cycle starts by
issuing a DeprecationWarning
that should not be visible to users.
- Issue DeprecationWarning for invalid DataFrame column types (#5457)
Version 1.15.0
This is a major release with a large number of new features and bug fixes, as well as updates to Python and Panel compatibility.
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 @ablythed @ahuang11 @douglas-raillard-arm @FloLangenfeld @hoxbro @ianthomas23 @jenssss @pepijndevos @peterroelants @stas-sl @Yura52 for their contributions. In addition, thanks to the maintainers @jbednar, @maximlt, @jlstevens and @philippjfr for contributing to this release.
Compatibility:
- Python 2 support has finally been dropped with 1.14.9 as the last release supporting Python 2
- HoloViews now requires panel >0.13.1 (#4329)
- Colormaps for the output of the datashade operation have changed to address holoviz/datashader#357; see rescale_discrete_levels below. To revert to the old colorbar behavior, set ColorbarPlot.rescale_discrete_levels = False in the bokeh or mpl plotting modules as appropriate.
- Updated Sankey algorithm means that some users may need to update the node_padding parameter for plots generated with earlier releases.
Major features:
After a long period of hotfix releases for the 1.14.9 series, many new features on the master branch have been released. Features relating to datashader support, linked selection and improvements to the Bokeh plotting backend are called out in their own sections.
- Support constructor interface from a spatialpandas GeometryArray (#5281)
- Allow plotting anonymous pandas.Series (#5015)
- Add support for rendering in pyodide/pyscript (#5338, #5321, #5275)
Datashader features:
The following new features have been added to the datashader support in HoloViews, mainly focused on Datashader's new support for antialiasing lines as well as the new rescale_discrete_levels colormapping option.
- Add automatic categorical legend for datashaded plots (#4806)
- Implement line_width support when rasterizing spatialpandas paths (#5280)
- Expose rescale_discrete_levels in the Bokeh backend (#5312)
- Set rescale_discrete_levels=True by default (#5268)
New linked selection features:
- Implement linked_selection.filter method (#4999)
- Allow passing custom selection_expr to linked selections filter (#5012)
- Fix AdjointLayout in link_selections (#5030)
New features for the Bokeh plotting backend:
- Add legend_labels option to allow overriding legend labels (#5342)
- Updated sankey algorithm to d3-sankey-v0.12.3 (#4707)
Other enhancements:
- Optimize and clean up options system (#4954)
- Optimize lasso selection by applying box-select first (#5061) #5061
- Support ibis-framework version 3 (#5292)
- Add OpenTopoMap as a tile source (#5052)
- Show all histograms of an Overlay (#5031)
Bug fixes:
- Fix batch watching and linking of parameters in Params stream (#4960, #4956)
- Ensure Plot.refresh is dispatched immediately if possible (#5348)
- Fix datashader empty overlay aggregation (#5334)
- Fixed missing handling of nodata for count aggregator with column (#4951)
- Handle pd.NA as missing data in dtype=object column (#5323)
- Forward DynamicMap.hist dimension parameter to histogram creation (#5037)
- Remove numpy pin from examples (#5285)
- Fix vmin/vmax deprecation on matplotlib HeatMapPlot (#5300)
- Don't skip each renderer's load_nb call when multiple extension calls are made in a single cell (#5302)
- Set plotly range correctly for log axis (#5272)
- Sanitize uses of contextlib.contextmanager (#5018)
- Ensure overlay_aggregate is not applied for anti-aliased lines (#5266)
- Switch to using bokeh rangesupdate event for Range streams (#5265)
- Fixes for bokeh Callbacks (#5040)
- Fix for attribute error in matplotlib CompositePlot (#4969)
- Silenced inappropriate deprecation warnings and updated deprecation settings in options system (#5345, #5346)
Documentation:
The following improvements to the documentation have been made:
- Fix hv.help when pattern is set (#5330)
- Added release dates to changelog and releases (#5027, #5035)
- Removed unneeded list from dynamic map example (#4953)
- Added FAQ about sharing only a single axis (#5278)
- Miscellaneous fixes to Heatmap reference notebook and Continuous Coordinates user guide (#5262)
- Added example of multiple RGB images as glyphs (#5172)
- Trim trailing whitespaces (#5019)
- Update outdated IOAM references (#4985)
Testing infrastructure:
Many thanks to @maximlt for his work maintaining and fixing the testing infrastructure across too many PRs to list here.
Version 1.14.9
This release contains a small number of important bug fixes as well as support for the newly added antialiasing option for line rendering in datashader. Many thanks to @andriyot, @hoxbro, @pepijndevos, @stas-sl, @TheoMathurin, @maximlt, @jlstevens, @jbednar, and @philippjfr.
Enhancements:
- Improvements to extension loading, improving visual appearance in JupyterLab when no logo is used and a check to avoid loading unnecessary JavaScript (#5216, #5249)
- Add support for setting antialiased line_width on datashader line aggregation as well as pixel_ratio setting
(#5264, #5288) - Added options to customize hover line_width|cap|dash properties (#5211)
- Restored Python 2 compatibility that lapsed due to lack of CI testing since 1.14.3. This is expected to be the last release with
Python 2 support. (#5298)
Bug fixes:
- Fix to respect series order in stacked area plot (#5236)
- Support buffer streams of unspecified length (#5247)
- Fixed log axis lower bound when data minimum is <= 0 (#5246)
- Declared GitHub project URL in setup.py (#5227)
- Fixed streaming Psutil example application (#5243)
- Respecting Renderer’s center property for HoloViews pane (#5197)
- Fix vmin/vmax deprecation in HeatMap plot for matplotlib > 3.3 (#5300)
Documentation:
Version 1.14.8
February 15, 2022
This release contains a small number of important bug fixes as well as fixes required for Python 3.9 and 3.10 support. Many thanks to @hoxbro, @maximlt, @jlstevens, @jbednar, and @philippjfr.
Bug fixes:
- Fixed xarray validation for aliased coordinate (#5169)
- Fixed xaxis/yaxis options with Matplotlib (#5200)
- Fixed nested widgets by handling list or tuple values in resolve_dependent_value utility (#5184)
- Fixed issue handling multiple widgets without names (#5185)
- Fix overlay of two-level categorical plots and HLine (#5203)
- Added support for Ibis
> 2.0
(#5204) - Allow lower dimensional views on arbitrary dimensioned elements (#5208)
- Fix escaping of HTML on Div element (#5209)
- Miscellaneous fixes to unit tests, including cudf test fixes as well as addition of Python 3.9 and 3.10 to the test matrix (#5166, #5199, #5201, #5206)
Version 1.14.7
This release contains a small number of important bug fixes. Many thanks to @douglas-raillard-arm, @jenssss, @w31t1, @hoxbro, @martinfleis, @maximlt, @jlstevens, @jbednar, and @philippjfr.
Bug fixes:
- Support xyzservices.TileProvider as hv.Tiles input (#5062)
- Allow reversed layout/overlay binary operators for
+
and*
to be used with custom objects (#5073) - Fix internal numpy.round usage (#5095)
- Remove dependency on recent Panel release by importing bokeh version from util module (#5103)
- Add missing bounds for the cache_size Parameter (#5105)
- Add current_key property to DynamicMap (#5106)
- Pin freetype on Windows to avoid matplotlib error (#5109)
- Handle the empty string as a group name (#5131)
- Do not merge partially overlapping Stream callbacks (#5133)
- Fix Violin matplotlib rendering with non-finite values (#5135)
- Fix matplotlib colorbar labeling for dim expressions (#5137)
- Fix datetime clipping on RangeXY stream (#5138)
- Ensure FreehandDraw renders when styles are set (#5139)
- Validate dimensionality of xarray interface data (#5140)
- Preserve cols when overlaying on layout (#5141)
- Fix Bars legend error when overlaid with annotation (#5142)
- Fix plotly Bar plots containing NaNs (#5143)
- Do not raise deprecated .opts warning for empty groups (#5144)
- Handle unsigned integer dtype in datashader aggregate operation (#5149)
- Delay projection comparison to optimize geoviews (#5152)
- Utility to convert datetime64 to int64 and test suite maintenance (#5157)
- Fix for Contours consistent of empty and nonempty paths (#5162)
- Fixed docs:
- Improved docs:
- Switch to the Pydata Sphinx theme (#5163)