Releases: holoviz/holoviews
Release list
Version 1.8.2
This bugfix release addresses a number of minor issues identified since the 1.8.1 release:
Feature:
- Added support for groupby to histogram operation. (#1725)
Fixes:
Version 1.8.1
This bugfix release addresses a number of minor issues identified since the 1.8 release:
Feature:
- All enabled plotting extension logos now shown (#1694)
Fixes:
- Updated search ordering when looking for holoviews.rc (#1700)
- Fixed lower bound inclusivity bug when no upper bound supplied (#1686)
- Raise SkipRendering error when plotting nested layouts (#1687)
- Added safety margin for grid axis constraint issue (#1695)
- Fixed bug when using +framewise (#1685)
- Fixed handling of Spacer models in sparse grid (#1682)
- Renamed Bounds to BoundsXY for consistency (#1672)
- Fixed bokeh log axes with axis lower bound <=0 (#1691)
- Set default datashader cmap to fire (#1697)
- Set SpikesPlot color index to None by default (#1671)
- Documentation fixes (#1662, #1665, #1690, #1692, #1658)
Version 1.8.0
This release includes a complete and long awaited overhaul of the HoloViews documentation and website, with a new gallery, getting-started section, and logo. In the process, we have also improved and made small fixes to all of the major new functionality that appeared in 1.7.0 but was not properly documented until now. We want to thank all our old and new contributors for providing feedback, bug reports, and pull requests.
Major features and improvements:
- Completely overhauled the documentation and website (PR #1384, #1473, #1476, #1473, #1537, #1585, #1628, #1636)
- Replaced dependency on bkcharts with new Bokeh bar plot (#1416) and bokeh BoxWhisker plot (#1604)
- Added support for drawing the
Arrowannotation in bokeh (#1608) - Added periodic method to DynamicMap to schedule recurring events (#1429 )
- Cleaned up the API for deploying to bokeh server (#1444, #1469, #1486)
- Validation of backend-specific options (#1465)
- Added utilities and entry points to convert notebooks to scripts including magics (#1491)
- Added support for rendering to PNG in bokeh backend (#1493)
- Made matplotlib and bokeh styling more consistent and dropped custom matplotlib rc file (#1518)
- Added
ilocandndlocmethod to allow integer-based indexing on tabular and gridded datasets (#1435) - Added option to restore case-sensitive completion order by setting
hv.extension.case_sensitive_completion=Truein python or via holoviews.rc file (#1613)
Other new features and improvements:
- Optimized datashading of
NdOverlay(#1430) - Expose last
DynamicMapargs and kwargs on Callable (#1453) - Allow colormapping
ContoursElement (#1499) - Add support for fixed ticks with labels in bokeh backend (#1503)
- Added a
climparameter to datashade controlling the color range (#1508 ) - Add support for wrapping xarray DataArrays containing dask arrays (#1512 )
- Added support for aggregating to target
Imagedimensions in datashaderaggregateoperation (#1513) - Added top-level hv.extension and
hv.rendererutilities (#1517) - Added support for
Splinesdefining multiple cubic splines in bokeh (#1529) - Add support for redim.label to quickly define dimension labels (#1541)
- Add
BoundsXandBoundsYstreams (#1554) - Added support for adjoining empty plots (#1561)
- Handle zero-values correctly when using
logzcolormapping option in matplotlib (#1576) - Define a number of
CycleandPalettedefaults across backends (#1605 ) - Many other small improvements and fixes (#1399, #1400, #1405, #1412, #1413, #1418, #1439, #1442, #1443, #1467, #1485, #1505, #1493, #1509, #1524, #1543, #1547, #1560, #1603)
Changes affecting backwards compatibility:
- Renamed
ElementOperationtoOperation(#1421) - Removed
stack_areaoperation in favor ofArea.stackclassmethod (#1515 ) - Removed all mpld3 support (#1516)
- Added
optsmethod on all types, replacing the now-deprecated__call__syntax to set options (#1589) - Styling changes for both matplotlib and bokeh, which can be reverted for a notebook with the
configoption ofhv.extension. For instance,hv.extension('bokeh', config=dict(style_17=True))(#1518 )
Version 1.7.0
This version is a major new release incorporating seven months of work involving several hundred PRs and over 1700 commits. Highlights include extensive new support for easily building highly interactive Bokeh plots, support for using datashader-based plots for working with large datasets, support for rendering images interactively but outside of the notebook, better error handling, and support for Matplotlib 2.0 and Bokeh 0.12.5. The PRs linked below serve as initial documentation for these features, and full documentation will be added in the run-up to HoloViews 2.0.
Major features and improvements:
- Interactive Streams API (PR #832, #838, #842, #844, #845, #846,
#858, #860, #889, #904, #913, #933, #962, #964, #1094, #1256, #1274,
#1297, #1301, #1303). - Dynamic Callable API (PR #951, #1103, #1029, #968, #935, #1063,
#1260). - Simpler and more powerful DynamicMap (PR #1238, #1240, #1243, #1257,
#1267, #1302, #1304, #1305). - Fully general support for Bokeh events (PR #892, #1148, #1235).
- Datashader operations (PR #894, #907, #963, #1125, #1281, #1306).
- Support for Bokeh apps and Bokeh Server (PR #959, #1283).
- Working with renderers interactively outside the notebook (PR
#1214). - Support for Matplotlib 2.0 (PR #867, #868, #1131, #1264, #1266).
- Support for Bokeh 0.12.2, 0.12.3, 0.12.4, and 0.12.5 (PR #899, #900,
#1007, #1036, #1116). - Many new features for the Bokeh backend: widgets editable (PR
#1247), selection colors and interactive legends (PR #1220), GridSpace axes (PR #1150),
categorical axes and colormapping (PR #1089, #1137), computing plot
size (PR #1140), GridSpaces inside Layouts (PR #1104), Layout/Grid titles (PR #1017), histogram with live colormapping (PR #928), colorbars (PR #861), finalize_hooks (PR
#1040), labelled and show_frame options (PR #863, #1013), styling
hover glyphs (PR #1286), hiding legends on BarPlot (PR #837),
VectorField plot (PR #1196), Histograms now have same color cycle as
mpl (#1008). - Implemented convenience redim methods to easily set dimension ranges,
values etc. (PR #1302) - Made methods on and operations applied to DynamicMap lazy (#422, #588,
#1188, #1240, #1227) - Improved documentation (PR #936, #1070, #1242, #1273, #1280).
- Improved error handling (PR #906, #932, #939, #949, #1011, #1290,
#1262, #1295), including re-enabling option system keyword
validation (PR #1277). - Improved testing (PR #834, #871, #881, #941, #1117, #1153, #1171,
#1207, #1246, #1259, #1287).
Other new features and improvements:
- Operations for timeseries (PR #1172), downsample_columns (PR #903),
interpolate_curve (PR #1097), and stacked area (PR #1193). - Dataset types can be declared as empty by passing an empty list
(PR #1355) - Plot or style options for Curve interpolation (PR #1097),
transposing layouts (PR #1100), multiple paths (PR #997), and norm
for ColorbarPlot (PR #957). - Improved options inheritance for more intuitive behavior (PR #1275).
- Image interface providing similar functionality for Image and
non-Image types (making GridImage obsolete) (PR #994). - dask data interface (PR #974, #991).
- xarray aggregate/reduce (PR #1192).
- Indicate color clipping and control clipping colors (PR #686).
- Better datetime handling (PR #1098).
- Gridmatrix diagonal types (PR #1194, #1027).
- log option for histogram operation (PR #929).
- Perceptually uniform fire colormap (PR #943).
- Support for adjoining overlays (PR #1213).
- coloring weighted average in SideHistogram (PR #1087).
- HeatMap allows displaying multiple values on hover (PR #849).
- Allow casting Image to QuadMesh (PR #1282).
- Unused columns are now preserved in gridded groupby (PR #1154).
- Optimizations and fixes for constructing Layout/Overlay types (PR #952).
- DynamicMap fixes (PR #848, #883, #911, #922, #923, #927, #944,
#1170, #1227, #1270). - Bokeh-backend fixes including handling of empty frames (#835), faster updates (#905),
hover tool fixes (#1004, #1178, #1092, #1250) and many more (PR #537, #851, #852,
#854, #880, #896, #898, #921, #934, #1004, #1010, #1014,
#1030, #1069, #1072, #1085, #1157, #1086, #1169,
#1195, #1263). - Matplotlib-backend fixes and improvements (PR #864, #873, #954,
#1037, #1068, #1128, #1132, #1143, #1163, #1209, #1211, #1225,
#1269, #1300). - Many other small improvements and fixes (PR #830, #840, #841, #850,
#855, #856, #859, #865, #893, #897, #902, #912, #916, #925, #938,
#940, #948, #950, #955, #956, #967, #970, #972, #973, #981, #992,
#998, #1009, #1012, #1016, #1023, #1034, #1043, #1045, #1046, #1048,
#1050, #1051, #1054, #1060, #1062, #1074, #1082, #1084, #1088,
#1093, #1099, #1115, #1119, #1121, #1130, #1133, #1151, #1152,
#1155, #1156, #1158, #1162, #1164, #1174, #1175, #1180, #1187,
#1197, #1202, #1205, #1206, #1210, #1217, #1219, #1228, #1232,
#1241, #1244, #1245, #1249, #1254, #1255, #1271, #1276, #1278,
#1285, #1288, #1289).
Changes affecting backwards compatibility:
- Automatic coloring and sizing on Points now disabled (PR #748).
- Deprecated max_branches output magic option (PR #1293).
- Deprecated GridImage (PR #1292, #1223).
- Deprecated NdElement (PR #1191).
- Deprecated DFrame conversion methods (PR #1065).
- Banner text removed from
notebook_extension()(PR #1231, #1291). - Bokeh's matplotlib compatibility module removed (PR #1239).
lsas matplotliblinestylealias dropped (PR #1203).mdimsargument of conversion interface renamed togroupby(PR #1066).- Replaced global alias state with Dimension.label (#1083).
- DynamicMap only updates ranges when set to framewise
- Deprecated DynamicMap sampled, bounded, open and generator modes (#969, #1305)
- Layout.display method is now deprecated (#1026)
- Layout fix for matplotlib figures with non-square aspects introduced in 1.6.2 (PR #826), now enabled by default.
- Bokeh matplotlib compatibility interface removed, dropping support for Distribution and Bivariate Element plots in bokeh (Issue #1218). These will be readded in version 2.0 as part of HoloViews' own statistical element module.
Version 1.6.2
Bug fix release with various fixes for gridded data backends and optimizations for bokeh.
- Optimized bokeh event messaging, reducing the average json payload by 30-50% (PR #807).
- Fixes for correctly handling NdOverlay types returned by DynamicMaps (PR #814).
- Added support for datetime64 handling in matplotlib and support for datetime formatters on Dimension.type_formatters (PR #816).
- Fixed handling of constant dimensions when slicing xarray datasets (PR #817).
- Fixed support for passing custom dimensions to iris Datasets (PR #818).
- Fixed support for add_dimension on xarray interface (PR #820).
- Improved extents computation on matplotlib SpreadPlot (PR #821).
- Bokeh backend avoids sending data for static frames and empty events (PR #822).
- Added major layout fix for figures with non-square aspects, reducing the amount of unnecessary whitespace (PR #826). Disabled by default until 1.7 release but can be enabled with:
from holoviews.plotting.mpl import LayoutPlot
LayoutPlot.v17_layout_format = True
LayoutPlot.vspace = 0.3Version 1.6.1
Bug fix release following the 1.6 major release with major bug fixes for the grid data interfaces and improvements to the options system.
- Ensured that style options incompatible with active backend are ignored (PR #802).
Added support for placing legends outside the plot area in bokeh (PR #801). - Fix to ensure bokeh backend does not depend on pandas (PR #792).
- Fixed option system to ensure correct inheritance when redefining options (PR #796).
- Major refactor and fixes for the grid based data backends (iris, xarray and arrays with coordinates) ensuring the data is oriented and transposed correctly (PR #794).
Version 1.6
A major release with an optional new data interface based on xarray, support for batching bokeh plots for huge increases in performance, support for bokeh 0.12 and various other fixes and improvements.
Features and improvements:
- Made VectorFieldPlot more general with support for independent coloring and scaling (PR #701).
Iris interface now allows tuple and dict formats in the constructor (PR #709. - Added support for dynamic groupby on all data interfaces (PR #711).
- Added an xarray data interface (PR #713).
- Added the redim method to all Dimensioned objects making it easy to quickly change dimension names and attributes on nested objects #715).
- Added support for batching plots (PR #715).
- Support for bokeh 0.12 release (PR #725).
- Added support for logz option on bokeh Raster plots (PR #729).
- Bokeh plots now support custom tick formatters specified via Dimension value_format (PR #728).
Version 1.5.0
A major release with a large number of new features including new data interfaces for grid based data, major improvements for DynamicMaps and a large number of bug fixes.
Features and improvements:
- Added a grid based data interface to explore n-dimensional gridded data easily (PR #562).
- Added data interface based on iris Cubes (PR #624).
- Added support for dynamic operations and overlaying of DynamicMaps (PR #588).
- Added support for applying groupby operations to DynamicMaps (PR #667).
- Added dimension value formatting in widgets (PR #562).
- Added support for indexing and slicing with a function (PR #619).
- Improved throttling behavior on widgets (PR #596).
- Major refactor of matplotlib plotting classes to simplify implementing new Element plots (PR #438).
- Added Renderer.last_plot attribute to allow easily debugging or modifying the last displayed plot (PR #538).
- Added bokeh QuadMeshPlot (PR #661).
Bug fixes:
- Fixed overlaying of 3D Element types (PR #504).
- Fix for bokeh hovertools with dimensions with special characters (PR #524).
- Fixed bugs in seaborn Distribution Element (PR #630).
- Fix for inverted Raster.reduce method (PR #672).
- Fixed Store.add_style_opts method (PR #587).
- Fixed bug preventing simultaneous logx and logy plot options (PR #554).
Backwards compatibility:
- Renamed Columns type to Dataset (PR #620).
Version 1.4.3
A minor bugfix release to patch a number of small but important issues.
Fixes and improvements:
- Added a DynamicMap Tutorial to explain how to explore very large or continuous parameter spaces in HoloViews (PR #470).
- Various fixes and improvements for DynamicMaps including slicing (PR #488) and validation (PR #483) and serialization (PR #483)
- Widgets containing matplotlib plots now display the first frame from cache providing at least the initial frame when exporting DynamicMaps (PR #486)
- Fixed plotting bokeh plots using widgets in live mode, after changes introduced in latest bokeh version (commit 1b87c91).
- Fixed issue in coloring Points/Scatter objects by values (Issue #467).
Backwards compatibility:
- The behavior of the scaling_factor on Points and Scatter plots has changed now simply multiplying area or width (as defined by the scaling_method). To disable scaling points by a dimension, set size_index=None.
- Removed hooks to display 3D Elements using the BokehMPLRawWrapper in bokeh (PR #477)
- Renamed the DynamicMap mode closed to bounded (PR #477)
Version 1.4.2
Over the past month since the 1.4.1 release, we have improved our
infrastructure for building documentation, updated the main website and
made several additional usability improvements.
Improvements to the documentation:
- Major overhaul of website and notebook building making it much
easier to test user contributions (Issue #180, PR #429) - Major rewrite of the documentation (PR #401, PR #411)
- Added Columnar Data Tutorial and removed most of Pandas
Conversions as it is now supported by the core.
Fixes and improvements:
- Major improvement for grid based layouts with varying
aspects (PR #457) - Fix for interleaving %matplotline inline and holoviews
plots (Issue #179) - Matplotlib legend z-orders and updating fixed (Issue #304,
Issue #305) color_indexandsize_indexplot options support
specifying dimension by name (Issue #391)- Added
AreaElement type for drawing area under or between
Curves. (PR #427) - Fixed issues where slicing would remove styles applied to an
Element. (Issue #423, PR #439) - Updated the
title_formatplot option to support a {dimensions}
formatter (PR #436) - Improvements to Renderer API to allow JS and CSS requirements
for exporting standalone widgets (PR #426) - Compatibility with the latest Bokeh 0.11 release (PR #393)