Skip to content

Releases: holoviz/holoviews

Version 1.16.0

09 May 07:31
f4c4c12
Compare
Choose a tag to compare

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:

Enhancements:

  • Improve legend_cols support for Bokeh 3 (#5669)
  • Add convenience getter interface to opts (#5606)
  • Ensure .stack works on areas with different vdims (#5693)
  • Add muted support to PointPlot like hv.Scatter (#5705)
  • Automatic detect comms without calling pn.extension() (#5645)
  • Add support for extra Hovertool variables in a Bokeh's quadmesh with 2D coordinates (with tests) (#5638)
  • Change hv.Rectangles to internally use Bokeh Quad and not Rect 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 to DataConversion (#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 to collections.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:

Known issues:

  • BoxEditTool is not yet supported with the new internals of hv.Rectangle.

Version 1.15.4

16 Jan 20:43
cdf6028
Compare
Choose a tag to compare

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 GraphPlots (#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 in AdjointLayout 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:

  • Various fixes and general maintenance of the CI (#5384, #5573, #5576, #5582)
  • Updated codebase to modern Python conventions (#5509, #5577)
  • Renamed master branch to main (#5579)
  • Update binder link and dependency pinning (#5583)
  • Update copyright to only contain start year (#5580)

Version 1.15.3

13 Dec 08:18
a0e9346
Compare
Choose a tag to compare

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:

  • Add support to Python 3.11 (#5513)
  • Cleanup the top __init__ module (#5516)

Documentation:

  • Fixes to release notes and CHANGELOG (#5506)

Version 1.15.2

03 Nov 13:21
ebe0877
Compare
Choose a tag to compare

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
DataFrames 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

07 Oct 15:56
8b84839
Compare
Choose a tag to compare

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 and iloc (#5352)
  • Take account of labeled dimension in Bokeh plotting classes (#5404)
  • Fix handling of pandas Period ranges (#5393)
  • Fixed declaration of Scatter to Selection1DExpr (#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 of BoxWhisker, 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

11 Jul 12:41
2d2b728
Compare
Choose a tag to compare

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.

  • Switch to pytest (#4949)
  • Test suite clean up and fix for the pip build (#5326)
  • Test updates following release of datashader 0.14.1 (#5344)

Version 1.14.9

09 May 23:14
bfeacf5
Compare
Choose a tag to compare

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:

  • Updated Large data guide to reflect changes in Datashader and antialiasing support (#5267, #5290)

Version 1.14.8

16 Feb 13:26
Compare
Choose a tag to compare

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

16 Dec 15:54
27da6a3
Compare
Choose a tag to compare

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:
    • Fix fig_bounds description in Plotting_with_Matplotlib.ipynb (#4983)
    • Fix broken link in Gridded user guide (#5098)
  • Improved docs:
    • Switch to the Pydata Sphinx theme (#5163)

Version 1.14.6

30 Sep 16:18
Compare
Choose a tag to compare

This is a hotfix release with a number of important bug fixes. Most importantly, this version supports the recent Bokeh 2.4.0 release.
Many thanks to @geronimos, @peterroelants, @douglas-raillard-arm, @philippjfr, and @jlstevens for contributing the fixes in this release.

Bug fixes:

  • Compatibility for bokeh 2.4 and fixes to processing of falsey properties and visible style property (#5059, #5063)
  • Stricter validation of data.interface before calling subclass (#5050)
  • Fix to prevent options being ignored in some cases (#5016)
  • Improvements to linked selections including support for linked selection lasso for cudf and improved warnings (#5044, #5051)
  • Respect apply_ranges at range computation level (#5081)
  • Keep ordering of kdim when stacking Areas (#4971)
  • Apply hover postprocessor on updates (#5039)