HoloViews 1.17.0

This release brings one of the most requested features - interactive twin-axis support! Another feature added in this release is the ability to easily set custom options on plot components with backend_opts, making it much easier to customize your plots. Datashaders where and summary aggregators are now supported, and rasterize now has a selector option, making it easy to get extra information about your rasterized data. Lastly, Bokeh figures with the same labels will synchronize muteness or visibility across different figures.

In addition, this release includes several enhancements and bug fixes.

Many thanks to the new contributors @alfredocarella and @RaulPL, as well as the returning contributors @ahuang11, @droumis, @jbednar, @jlstevens, @maximlt, @philippjfr, @TheoMathurin and @Hoxbro.

Release: Release Version 1.17.0 · holoviz/holoviews · GitHub

We will publish a blog post presenting some of the new features.

New features:

  • Multi-yaxis support in the Bokeh backend (#5621)
  • Allow modifying the underlying Bokeh or Matplotlib figure, axes etc. using backend_opts (#4463)
  • Support Datashaders where and summary aggregators and add selector option to rasterize enabling instant hover inspection of value dimensions (#5805)
  • Synchronize muteness or visibility across Bokeh figures to support linked legends (#5763)


  • Add option for initial ranges to RangeToolLink (#5800)
  • Allow resample’s pixel_ratio to go below 1 (#5813, #5817)
    Add the ability for VectorField to instantiate from UV coordinates (#5797)
  • Handle the nodata option for rasterized RGB image (#5774)

Bug fixes:

  • Fix bins option in the autompg_histogram demo (#5750)
  • Fix 0pt bug in safari (#5755)
  • Disable pan if active_tools=[] (#5754)
  • Better handling of inputs to rasterize.instance() (#5767, #5811)
  • Fix class variable being used as instance vdims in hv.RGB (#5773, #5775)
  • Improve notebook detection in VSCode and Google Colab (#5792)
  • Don’t warn when running rasterize in VSCode (#5780)
  • Add __init__ to hv.Output to not overwrite its parent signature (#5799)
  • Fix XArrayInterface crashing when input is an empty array (#5809)
  • Avoid setting batched before the class is initialized (#5814)
  • Fix aspect handling when plot size is still unknown (#5808)
  • Update callbacks to use Bokeh’s quad instead of quad (#5760)
  • Update hv.Image/hv.RGB invert_{x,y}axis to work with Bokeh 3 (#5796)
  • strip_magics should also strip IPython line magic (#5794)


  • Implement HEP1 - Drop support for Python 3.7 (#5695)
  • Replace deprecated np.product with np.prod (#5787)
  • Update FileArchive repr for Param 2.0 (#5791)
  • Deprecate functionality (#5776)


  • Fix typo in Getting Started section text (#5759)
  • Add sep keyword to pd.read_csv in documentation page (#5798)



You can find the twin axis documentation here



Here’s the backend_opts demo too :slight_smile: