Releases#

See the HoloViz blog for a visual summary of the major features added in a selection of releases.

Version 0.11.1 (2024-10-16)#

The 0.11.1 release is a patch release that brings a few bugfixes and documentation improvements. In particular it fixes a regression introduced in version 0.11.0 leading to an error when a plot is created from a Dask object with tiles=True. Many thanks to @Palmr (first contribution!), @ahuang11, @Hoxbro, @maximlt, and @philippjfr for their contributions!

Bug Fixes:

  • Fix regression when tiles=True with Dask (#1432)

  • Fix hover tooltips for NetworkX plots (#1439)

Documentation:

  • Add nb_interactivity_warning extension (#1444)

  • Document Ruff’s allowed-unused-imports (#1436)

  • Update image links in README (#1433)

  • Minor fixes (#1434)

Tests:

  • Mark test_explorer_geo_revise_kind with geo marker (#1426)

Full Changelog

Version 0.11.0 (2024-09-27)#

This minor release brings a number of enhancements and bugfixes, checkout the release blog post for a visual summary of the most important changes.

  • 🦆 New integration: DuckDB!

  • 🗺️ Automatic latitude/longitude conversion when displaying a tile map

  • 💹 Support for displaying subcoordinate y-axis

  • 🏄 New hover options: hover_tooltips and hover_formatters

  • 🐼 Optimized Pandas index support

  • 🐛 Fixing “No output in jupyter”

  • ➕ Update of the minimum version of the dependencies

Many thanks to @Azaya89, @liufeimath and @philipc2 for their first contributions, to @iuryt for contributing again, and to the maintainers @ahuang11, @hoxbro, @maximlt and @philippjfr!

Enhancements:

  • Add DuckDB integration (#1398)

  • Add pixel_ratio keyword, useful when datashade/rasterize=True (#1411)

  • Automatically convert lonlat to xy when tiles=True (#1377)

  • Add hover_tooltips and hover_formatters keywords, and better document hover (#1385, #1415)

  • Add subcoordinate_y keyword (#1379)

  • Optimize handling of wide datasets and Pandas indexes (#1350)

  • Add cticks keyword (#1368)

  • Optimize the geographic part of the explorer (#1353)

  • Support using by with hvplot.labels() to color the text (#1347)

Bug Fixes:

  • Ensure hvplot. hooks are run on every import (#1359)

  • Warn on imposing max rows, fix for curve and increase MAX_ROWS to 100,000 (#1408)

  • Do not set bin_range if shared_axes=False (#1391)

  • Fix date sorting of multi index Pandas dataframes (#1363)

  • Fix geopandas type check to handle None geometry (#1367)

  • Do not mutate data when using custom text format (#1352)

Compatibility:

  • Handle new Polars PerformanceWarning (#1418)

  • Add dask-geopandas check to is_geodataframe function (#1396)

  • Require HoloViews>=1.19.0, bump other dependencies, and drop Python 3.8 (#1355)

Documentation:

  • Fix missing images and image links (#1422)

  • Add interactive downsampling large vector fields (#1372)

  • Add customization for the subplots example (#1371)

  • Document Jupyter notebook requirements (#1392)

  • Replace geopandas.datasets by geodatasets in the examples (#1362)

  • Add paths reference notebook (#1354, #1384)

  • Document the downsample and resample_when parameters (#1344)

Infrastructure / Tests:

  • Use psutil logical for test examples (#1404)

  • Remove tests for polars.plot (#1403)

  • Use bokeh_sampledata in CI (#1387)

  • Conditionally skip testing the Gridded data user guide (#1383)

Full Changelog

Version 0.10.0 (2024-05-06)#

This minor release brings a number of enhancements and bugfixes, checkout the release blog post for a visual summary of the most important enhancements.

  • 🧰 Improving the contributor experience: moving away from pyctdev to a more usual and easier approach, and adopt ruff as a linter and formatter

  • 📦 Modernizing hvPlot’s packaging: migrating to pyproject.toml

  • 📖 Improving the documentation: adding a user guide on large time-series and improving the geographic user guide

  • 📈 Enhancing the plotting API: in part to support the NumFocus SDG project that aims to modernize the HoloViz Examples

  • 🐛 Fixing bugs!

Many thanks to @ahuang11, @droumis, @Hoxbro, @jsignell, and @maximlt for their contributions.

Governance:

  • Andrew (@ahuang11) promoted as Maintainer! (#1267)

Enhancements:

  • Add bgcolor parameter to set the background color (#1308)

  • Add robust parameter, similarly to Xarray (#1291)

  • Add tiles_opts parameter to customize the tiles (#1299)

  • Add support to xyzservices tiles (#1307)

  • Allow to set the downsample algorithm as string input (#1314)

  • Allow crs as Cartopy class name to match projection (#1332)

Bug Fixes:

  • Fix saving Panel objects with hvplot.save (#1297)

  • Fix setting group_label when plotting a histogram (#1310)

  • Fix the support of HoloViews ImageStack support and usage of aggregator and by (#1316)

  • Fix handling of EPSG codes (#1330)

  • Explorer: fix handling of Xarray objects that have dims without coords (#1334)

Compatibility:

  • Minor changes in preparation of the HoloViews Pandas index refactor (#1281)

Documentation:

Infrastructure / Tests:

  • Migrate to pyproject.toml and improve the contributor experience (#1296, #1322)

  • Format and lint the code base with ruff (#1320)

  • Pin intake to version 2.0.0 (#1275)

  • Fix the test suite after the latest Dask release (#1298)

  • Remove the examples folder (#1287)

  • Install the tests dependencies primarily with pip (#1276)

  • Misc (#1317, #1321, #1323, #1324, #1327)

Full Changelog

Version 0.9.2 (2024-01-29)#

The 0.9.2 release is a patch release that brings a few bugfixes and documentation improvements, improving Polars support and documentation. Many thanks to @kevinheavey (first contribution!), @MarcoGorelli, @Hoxbro, and @maximlt for their contributions.

Bug fixes:

  • Correctly fall back to all numeric Polars columns when y is not specified (#1247)

Documentation:

  • Better expose Polars support (#1262)

  • Rename the Pandas reference section to Tabular (#1260)

  • Add roadmap for 2024 (#1253)

  • Various small changes (#1255 and #1261)

Infrastructure / Tests:

  • Add downstream Polars test (#1243)

  • Compatibility with Pandas 2.2 (#1257)

  • Dynamically generate the unit test matrix and add a cache option (#1235)

Full Changelog

Version 0.9.1 (2023-12-22)#

The 0.9.1 release brings a number of enhancements, bugfixes and documentation improvements. Many thanks to @iuryt (first contribution!), @MarcoGorelli (first contribution!), @ahuang11, @Hoxbro and @maximlt for their contributions.

Enhancements:

  • Explorer: give more space to the plot and various UI tweaks (#1197, #1198, #1199, #1225)

  • Explorer: disable the geographic controls when geoviews is not installed (#1223)

  • Explorer: change the default plot type from line to scatter (#1228)

  • Support polars objects in the hvplot.plot entrypoint (#1219, #1222)

Bug fixes:

  • Fix ignoring hover_cols in OHLC plots (#1216)

  • Fix considering datashaded plots with one y variable as categorical (#1231)

  • Fix displaying Panel objects returned by hvPlot with show (#1230)

Documentation:

  • Replace Google Analytics with GoatCounter (#1224)

  • Indicate that Stamen tiles require a Stadia account (#1226)

  • Reintroduce colorbars in the Matplotlib guide (#1229)

  • Misc (#1186, #1195)

Maintenance:

  • Bump the minimum Param version to 1.12.0 (#1227)

Full changelog

Version 0.9.0 (2023-10-16)#

The 0.9.0 release is a minor release with some exciting new features and a large number of bug fixes and enhancements. Many thanks to @rdesai9 (first contribution!), @dogbunny (first contribution!), @bikegeek (first contribution!), @ahuang11, @droumis, @Hoxbro, @MarcSkovMadsen, @maximlt and @philippjfr for their contributions. A special thanks to @ahuang11 and @Hoxbro without who these release notes would be much shorter!

New features:

  • The Explorer has been extended with the following features:

    • Support for Xarray data, enhanced geographic support and add a live update checkbox (#1141)

    • Display the code snippet within a tab (#1156)

    • Allow defining options passed to plot.opts() (#1171)

  • Add experimental Fugue integration (#1102)

  • Add basic Polars integration (#1129)

Enhancements:

  • Add .hvplot.explorer() as an alternate entry point to create an explorer (#1154)

  • Add the resample_when option to dynamically enable datashade/rasterize/downsample (#1103)

  • Expose the HoloViews timeseries downsampling algorithm (LTTB) with the downsample option (#1127, #1157)

  • Expose the HoloViews autorange option (#1128, #1158, #1174)

  • Allow string formatting for labels plots (#1140)

  • Support plots that use by with rasterize with HoloViews ImageStack (#1132, #1144)

  • Update show to return the configured Server or StoppableThread (#1121)

Bug fixes:

  • Do not force geo=True if tiles are provided (#1083, #1113)

  • Fix x-limit, y-limit, and rasterize support for geo features (#1135, #1163)

  • Fix handling WKT strings and add pyproj.CRS support (#1092, #1139)

  • Underlay land and ocean features (#1151)

  • Fix .hist for the Ibis data source (#997)

  • No longer suggest installing datashader and geoviews from the pyviz channel (#1130)

  • Silence GDAL exceptions warning (#1142)

Documentation:

  • Various docs improvements and addition of an Integrations guide (#1084, #1173, #1177)

  • Extending the reference gallery (#999)

  • Added extra size parameter to scatter plot example (#1118)

Compatibility:

  • Preparations before the release of Param 2.0 (#1146, #1164)

  • Pin Param to <3.0 (#1175)

  • Drop Python 3.6 and 3.7 (#1077)

Infrastructure / Tests:

  • Add Dask DataFrame plot test (#1131)

  • Add codespell to pre-commit (#1172)

  • Add OpenCollective sponsor link on the repo page (#1123)

Full changelog

Version 0.8.4 (2023-06-05)#

The 0.8.4 release brings a number of bugfixes and documentation improvements. Many thanks to @kthyng (first contribution!), @raybellwaves, @jsignell , @Hoxbro, @maximlt and @philippjfr for contributing.

Bug fixes:

  • Fix .interactive layout compatibility with Bokeh 3 (1076)

  • Fix usage with intake (1052)

  • Fix deprecated usage of Param 2.0 (1064)

  • Fix projection when xlim/ylim provided (1053)

  • Fix interpretation of positional arg with geopandas, now used as color (1056)

  • Fix import error messages for geo dependencies (1054)

  • Fix usage of hover for geometries - make it less likely to fail (1055)

Documentation:

  • Update to latest nbsite & pydata-sphinx-theme (1070)

  • Update to Google Analytics4 (1075)

Maintenance:

  • Add ipywidgets to the examples deps (1048)

Version 0.8.3 (2023-03-17)#

The 0.8.3 release brings a number of bugfixes and documentation improvements. This release is also marked by the adoption of a formal project governance, ensuring hvPlot’s future as a healthy open-source project! Many thanks to @raybellwaves, @jsignell (welcome back!), @droumis, @Hoxbro, @maximlt, @philippjfr and @MarcSkovMadsen for contributing!

Please note that hvPlot is not yet compatible with Bokeh 3.

Bug fixes:

  • Allow .hvplot to execute for the ibis backend (#990)

  • Improve package name in error message (#1005)

  • Let process_crs try a few approaches before raising error (#1026)

  • Fix label on unnamed data array (#1025)

  • Only use xarray long_name metadata if it is a string (#1031)

  • Replace deprecated Param methods (#1030)

  • Ensure interactive pipeline is not re-executed needlessly (#1029)

  • Fixes subplots=True for geo=True and by (#761)

  • Force column names to string (#1042)

Documentation:

  • Docstring fixes (#985)

  • Improve the hist reference guide (#1002)

  • Improve the bar reference guide (#1032)

Project governance:

  • Create initial project gov docs (#1016)

Maintenance:

  • Rename master branch to main (#1011)

  • Add Python 3.11 to the test matrix (#1015)

  • Run examples with nbval instead of nbsmoke (#1044)

  • Fix the build by better defining the package extras (#1046)

Version 0.8.2 (2022-11-24)#

The 0.8.2 release brings a number of bugfixes and documentation improvements. @MarcSkovMadsen has kept improving the docstrings and we congratulate @sophiamyang for her first contribution that made the landing page nicer! Many thanks to @droumis, @Hoxbro, @maximlt, @philippjfr and @MarcSkovMadsen for contributing!

Please note that hvPlot is not yet compatible with Bokeh 3.

  • Dependencies:

    • Add Panel lower pin to ensure Bokeh 3 is not installed (#974)

  • Interactive:

    • Support slice (#776)

  • Plot:

    • Convert DataFrame columns with type RangeIndex to strings to ensure compatibility with HoloViews (#932)

    • Ensure that xarray dataset metadata propagates to NdOverlays (#930)

    • Support rioxarray (#905)

    • Improve error message mentioning pyproj (#950)

  • Explorer:

    • Don’t error on datetime-like axis (#968)

    • Don’t use xlim/ylim slider if start and end values are identical (#966)

  • Documentation:

    • New and updated docstrings (#892, #863)

    • Improve the landing page (#874, #903, #876)

    • Change http to https (#873)

    • Add intended rolling_window param into pipeline (#944)

    • Updates the README (#817)

    • Miscellaneous documentation improvements (#866, #887, #910)

  • Development:

    • Add pre-commit to format and lint the code on commits (#967)

  • CI:

Version 0.8.1 (2022-08-26)#

The 0.8.1 release is a bug fix release, focusing mostly on improving .interactive and the explorer. The documentation has seen some improvements too; @MarcSkovMadsen has been improving the docstrings so make sure to check them out. Many thanks to @jlstevens, @Hoxbro, @maximlt, @philippjfr and @MarcSkovMadsen for contributing!

  • Interactive:

    • Set interactive function to lazy to avoid calling it twice (#772)

    • Add support for hvplot kind accessor (#781, #858)

    • Add more tests to Interactive and some comments (#812)

    • Fixes to the operators implemented by Interactive (#814)

    • Propagate max_rows (#815)

    • Only register the function parameters watchers once (#818)

    • Do not re-execute transform on copied clones (#833)

    • Internal callback made dependent only when parameters are found (#857)

  • Explorer:

    • Make the explorer easier to use (#799)

    • Enhancement to Fields tab in explorer (#811)

    • Remove the marker styling option of the explorer (#809)

  • Plot:

    • Make rescale_discrete_levels a plot option (#758)

    • Ensure that dataframes with multiple columns are categorically shaded (#759)

    • Display a color bar when rasterize is enabled (#782)

    • Update the expected DataSet plot title after xarray 2022.6.0 (#795)

    • Set categorically shaded when there’s more than one variable (#843)

    • Clone GeoViews’ features (#850)

  • Documentation:

    • Add new and improve existing docstrings (#793, #826, #827, #822)

    • Update developer install instructions (#794)

    • Rework the landing page and add a Getting started guide (#838)

  • Misc:

    • No longer use basestring from holoviews.core.util (#757)

    • Ensure that repr is initialized on hvplot backend import (#774)

    • Add RGB test data (#779)

    • Add flatten utility function (#798)

Version 0.8.0 (2022-05-09)#

The 0.8.0 release is a minor release with some exciting new features and a large number of bug fixes and enhancements. Many thanks to @FabianHofmann, @jomey, @ablythed, @jlstevens, @Hoxbro, @michaelaye, @MridulS, @ppwadhwa, @maximlt, @philippjfr for contributing!

Main new features:

  • Add ability to call .interactive() on bound functions (#720)

  • Add support to the Matplotlib and Plotly backends (#653)

  • Add the hvPlotExplorer, a Panel UI component designed to explore data (#638, #639, #651, #710, #726)

Enhancements:

  • Interactive:

    • Allow using getitem on an accessor in interactive (#633)

    • Allow attribute access on ufunc on interactive (#635)

    • Enhancements for interactive API (#640)

    • Flatten op_args to be able to find nested widgets (#699)

  • Allow dynspread to be used with rasterize (#637)

  • Add a title to xarray plots with scalar coords (#659)

  • Adding datashade and rasterize options to scatter_matrix (#495)

  • Update the default internal value of clim to support Matplotlib (#679)

  • Ensure bokeh/panel extension is loaded only once (#686)

  • Add support for planar layout from Networkx (#700)

  • Wrap color in hv.dim when it matches a dimension/column (#717)

  • Expose datashader line_width and rescale_discrete_levels options (#731)

  • Improve array-like handling for x and y inputs (#714)

Fixes:

  • Interactive:

    • Interactive fixes (#630)

    • Fix for interactive transform (#632)

    • Fix issue with accessors on interactive (#641)

    • Consistently dereference attribute access (#642)

  • State that the data cannot be symmetric if it’s empty (#680)

  • Disable hover on errorbars plot (#721)

  • Fix application of the scale argument for geoviews features (#725)

Documentation:

  • Add scatter matrix reference (#689)

  • Plotting user guide enhancement (#694)

  • Download a tutorial file with the right filename (#711)

  • Add more imports to try/except import check (#693)

  • Various minor documentation enhancements and fixes (#625, #643, #644, #663, #678, #722)

Maintenance:

  • Drop support for Python 2.7, minimum supported version is now Python 3.6 (#702)

  • Changed to packaging.version (#708)

Version 0.7.3 (2021-07-23)#

This is a minor release focusing on greatly improving the .interactive() API for flexibly building simple apps using widget controls. Thanks to @jbednar and @jlstevens for a few small fixes and many thanks to @philippjfr for all the rest!

Features:

  • Improved .interactive Dataframe support: max_rows display, column access (#640)

  • Improved accessor and attribute behavior for .interactive (#633, #635, #641, #642)

  • Add .holoviews() terminal method to .interactive pipelines

  • Add support for kwargs to .interactive.layout

  • Misc fixes to .interactive API (#630, #632)

  • Allow dynspread=True to be used with rasterize=True (now that Datashader supports it)

Version 0.7.2 (2021-05-22)#

This is a minor release with a number of bug fixes and enhancements. Many thanks to @StefanBrand, @loicduffar, @brl0, @michaelaye, @aaronspring, @toddrjen, @raybellwaves, @jlstevens, @jbednar and @philippjfr for contributing.

Features:

  • Add support for geographic features (#622)

  • Added support for OHLC plot (#623)

Enhancements:

  • Support setting options for diagonal plots in scatter_matrix (#602)

  • Take group_label from columns if available (#615)

  • Add kwargs to interactive.layout()

Bug fixes:

  • Fix support for clim on contours (#587)

  • Adding default coordinates to datasets with missing coords (#605)

  • Do not plot streamz example point (#614)

  • Fix passing in multiple z-values (#616)

  • Ensure violin and boxplot color is applied (#619)

  • Ensure categorical colormapping is applied during datashade (#621)

Compatibility:

  • Switch default tile source to OSM (since Wikipedia is no longer available) (#610)

Documentation:

  • Correctly document .hist rather than .histogram (#571)

  • Use strings rather than bytes when referring to airplane dataset columns (#538)

  • Preserve function signature and docstring in with_hv_extension (#601)

  • Add hover_cols example (#612)

  • Switch to pydata sphinx theme (#613)

  • Update available options in customization docs (#620)

Version 0.7.1 (2021-03-03)#

Major new features:

  • Add Ibis backend, providing hvPlot features for lazy SQL queries (#507)

Enhancements:

  • Cycles for continuous colormaps ([#548)

  • Validate by column(s) ([#565)

  • Add hover='vline' hover='hline' options to expose Bokeh HoverTool mode (#493)

  • Support streaming plots from HoloViews streams (not needing a streamz source) (#542)

Bug fixes:

  • Drop tuple NetworkX attributes to avoid errors (#549)

  • Cast types after applying melt to data (#566)

Version 0.7.0 (2020-11-18)#

Thanks to @philippjfr for managing this release and implementing most of the features, and to @jbednar, @ahuang11, and @AurelienSciarra for contributions.

Major new features:

  • Powerful new .interactive() API for building easy apps (#505, #523)

  • New transforms argument to transform data in .hvplot() calls (#526)

Other new features and enhancements:

  • Support passing geographic projections as strings (#372)

  • Improved data selection, e.g. for filtering on metadata (#522)

  • Provide color_key to datashade as well as cmap, for convenience (#525)

  • Update param warnings to new API (#528)

  • Replace TravisCI tests with GitHub Actions (#524)

Bug fixes:

  • Fix for specifying hover_cols (#504)

  • Remove outdated reference to __main__ console script (#494)

  • Misc doc fixes, including to Streaming.ipynb (#481, #511)

  • Handle node_shape for networkx (#527)

Version 0.6.0 (2020-06-02)#

This release includes major contributions from @philippjfr (overall maintenance and bugfixes) and @jsignell (reference gallery), plus additional contributions from @slamer59 (environment), @anitagraser (examples), @itcarroll (color_key alias), @Timothy-W-Hilton (bugfix), @jbednar (bugfix), @SandervandenOord (fontscale), and @jordansamuels (doc fixes).

New features:

  • Improved save and show utilities (#451)

  • Improved compatibility for tab completion (#411)

  • Major performance enhancement with Datashader in some cases (#465)

  • Add support for cuDF (#454, #466)

  • Support by argument for categorical aggregation (#461)

  • Support color_key alias (#446, #458)

  • Support spatialpandas for large sets of polygons (#459)

  • Add fontscale keyword (#397)

Bug fixes and compatibility:

  • Fixed 'title_format' deprecation warning (#428)

  • Avoid sorting overlays, to make color cycles consistent (#475)

  • Fix inference of non-declared index coordinates (#329)

  • Improved handling of indexes on flattened grid (#452)

  • Preserve Dataset.pipeline (#453)

  • Fixes for option handling (#458)

Documentation:

  • Added (a start to) a reference gallery

  • Added heat and trees example to topics (#378)

  • Replaced sphinx_pyviz_theme with sphinx_holoviz_theme (#366)

  • Removed references to pyviz (#373)

  • Fix networkx documentation (#476)

Version 0.5.2 (2019-10-17)#

This release mostly includes contributions from @jsignell.

  • Allow tile sources to be objects as well as strings (#345)

  • Set geo=True by default for coastline (#344)

  • Add check_symmetric_max limit for working with large data (#340)

  • Expose plot at top level, to support pd.options.plotting.backend = 'hvplot' (#347)

  • Misc bug fixes (#341, #343, #346)

Version 0.5.1 (2019-10-13)#

Minor release with updates to continuous integration setup (from @jsignell).

Version 0.5.0 (2019-10-10)#

October 10, 2019

This is a major release that includes bug fixes, changes to default behavior, and enhancements.

Features:

  • Widget handling capabilities to facilitate interactivity (#323, #331)

  • New default colormaps (#258, #316, #206)

  • long_name(units) used to label xarray objects (#173)

  • Derived datetime accessor handlind (#263, #286)

  • coastline and tiles options for easy geo plots.

  • Automatic date sorting (#259)

  • Allow use of strings as aggregators for datashader (#257)

Version 0.4.0 (2019-01-28)#

This is a major release which includes the addition of a networkx plotting API and a number of important bug fixes.

Features:

  • A new NetworkX interface providing equivalents for the networkx plotting module (#152, #154)

Fixes:

  • Fixed handling of labelled property to hide axis labels (#142)

  • Fixed handling of DataArrays and groupby on RGB plots (#138, #141)

  • Allow setting axis position (#149)

  • Fixes for setting the axis positions (#145)

Version 0.3.0 (2019-01-07)#

This release includes a number of major improvements to the documentation and core functionality as well as a variety of bug fixes.

  • Added improved docstrings including all available options (#103, #134)

  • Added support for tab-completion in interactive environments such as IPython and Jupyter notebooks (#134)

  • Added support for rgb (#137) and labels (#98) plot types

  • Exposed bokeh styling options for all plot types (#134)

  • Compatibility with latest HoloViews/GeoViews releases (#113, #118, #134)

  • Added control over tools (#120) and legend position (#119)

Previous versions#

Versions 0.1.1, 0.2.0, 0.2.1 were released on the 6th of July 2018, 7th of July 2018 and 8th of July 2018.