This release is a minor bug fix release patching various issues which were found in the 1.9.1 release.
Enhancements:
- Improved the Graph element, optimizing the constructor
and adding support for defining a
edge_color_index
(#2145) - Added support for adding jitter to bokeh Scatter and Points plots (e56208)
Fixes:
- Ensure dimensions, group and label are inherited when casting Image to QuadMesh (#2144)
- Handle compatibility for bokeh version >= 0.12.11 (#2159)
- Fixed broken bokeh ArrowPlot (#2172)
- Fixed Pointer based streams on datetime axes (#2179)
- Allow constructing and plotting of empty Distribution and Bivariate elements (#2190)
- Added support for hover info on bokeh BoxWhisker plots (#2187)
- Fixed bug attaching streams to (Nd)Overlay types (#2194)
This release is a minor bug fix release patching various issues which were found in the 1.9.0 release.
Enhancements:
- Exposed min_alpha parameter on datashader shade and datashade operations (#2109)
Fixes:
- Fixed broken bokeh server linked stream throttling (#2112)
- Fixed bug in bokeh callbacks preventing linked streams using bokeh's on_event callbacks from working (#2112)
- Fixed insufficient validation issue for Image and bugs when applying regrid operation to xarray based Images (#2117)
- Fixed handling of dimensions and empty elements in univariate_kde and bivariate_kde operations (#2103)
This release includes a large number of long awaited features, improvements and bug fixes, including streaming and graph support, binary transfer of bokeh data, fast Image/RGB regridding, first-class statistics elements and a complete overhaul of the geometry elements.
Particular thanks to all users and contributers who have reported issues and submitted pull requests.
Features:
- The kdim and vdim keyword arguments are now positional making the declaration of elements less verbose (e.g. Scatter(data, 'x', 'y')) (#1946)
- Added Graph, Nodes, and EdgePaths elements adding support for plotting network graphs (#1829)
- Added datashader based regrid operation for fast Image and RGB regridding (#1773)
- Added support for binary transport when plotting with bokeh, providing huge speedups for dynamic plots (#1894, #1896)
- Added Pipe and Buffer streams for streaming data support (#2011)
- Add support for datetime axes on Image, RGB and when applying datashading and regridding operations (#2023)
- Added Distribution and Bivariate as first class elements which can be plotted with matplotlib and bokeh without depending on seaborn (#1985)
- Completely overhauled support for plotting geometries with Path, Contours and Polygons elements including support for coloring individual segments and paths by value (#1991)
Enhancements:
- Add support for adjoining all elements on matplotlib plots (#1033)
- Improved exception handling for data interfaces (#2041)
- Add groupby argument to histogram operation (#1725)
- Add support for reverse sort on Dataset elements (#1843)
- Added support for invert_x/yaxis on all elements (#1872, #1919)
Fixes:
- Fixed a bug in matplotlib causing the first frame in gif and mp4 getting stuck (#1922)
- Fixed various issues with support for new nested categorical axes in bokeh (#1933)
- A large range of other bug fixes too long to list here.
Changes affecting backwards compatibility:
- The contours operation no longer overlays the contours on top of the supplied Image by default and returns a single Contours/Polygons rather than an NdOverlay of them (#1991)
- The values of the Distribution element should now be defined as a key dimension (#1985)
- The seaborn interface was removed in its entirety being replaced by first class support for statistics elements such as Distribution and Bivariate (#1985)
- Since kdims and vdims can now be passed as positional arguments the bounds argument on Image is no longer positional (#1946).
- The datashade and shade cmap was reverted back to blue due to issues with the fire cmap against a white background. (#2078)
- Dropped all support for bokeh versions older than 0.12.10
- histogram operation now returns Histogram elements with less generic value dimension and customizable label (#1836)
This bugfix release includes a number of critical fixes for compatiblity with bokeh 0.12.9 along with various other bug fixes. Many thanks to our users for various detailed bug reports, feedback and contributions.
Fixes:
- Fixes to register BoundsXY stream. (#1826)
- Fix for Bounds streams on bokeh server. (#1883)
- Compatibility with matplotlib 2.1 (#1842)
- Fixed bug in scrubber widget and support for scrubbing discrete DynamicMaps (#1832)
- Various fixes for compatibility with bokeh 0.12.9 (#1849, #1866)
- Fixes for setting QuadMesh ranges. (#1876)
- Fixes for inverting Image/RGB/Raster axes in bokeh. (#1872)
This bugfix release fixes a number of minor issues identified since the last release:
Features:
- Add support for setting the bokeh sizing_mode as a plot option (#1813)
Fixes:
- Handle StopIteration on DynamicMap correctly. (#1792)
- Fix bug with linked streams on empty source element (#1725)
- Compatibility with latest datashader 0.6.0 release (#1773)
- Fixed missing HTML closing tag in extension (#1797, #1809)
- Various fixes and improvements for documentation (#1664, #1796)
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:
- Fixed problem with HTML export due to new extension logos. (#1778)
- Replaced deprecated
__call__
usage with opts method throughout codebase. (#1759, #1763, #1779) - Fixed pip installation. (#1782)
- Fixed miscellaneous bugs (#1724, #1739, #1711)
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)
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:
- Completely overhauled the documentation and website (#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
Arrow
annotation in bokeh (#1608) - Added periodic method DynamicMap to schedule recurring events (#1429)
- Cleaned up the API for deploying to bokeh server (#1444, #1469, #1486)
- Validation of invalid 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
iloc
andndloc
method 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=True
in python or via holoviews.rc file (#1613)
Other new features and improvements:
- Optimized datashading of
NdOverlay
(#1430) - Expose last
DynamicMap
args and kwargs on Callable (#1453) - Allow colormapping
Contours
Element (#1499) - Add support for fixed ticks with labels in bokeh backend (#1503)
- Added a
clim
parameter to datashade controlling the color range (#1508) - Add support for wrapping xarray DataArrays containing dask arrays (#1512)
- Added support for aggregating to target
Image
dimensions in datashaderaggregate
operation (#1513) - Added top-level hv.extension and
hv.renderer
utilities (#1517) - Added support for
Splines
defining multiple cubic splines in bokeh (#1529) - Add support for redim.label to quickly define dimension labels (#1541)
- Add
BoundsX
andBoundsY
streams (#1554) - Added support for adjoining empty plots (#1561)
- Handle zero-values correctly when using
logz
colormapping option in matplotlib (#1576) - Define a number of
Cycle
andPalette
defaults 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
ElementOperation
toOperation
(#1421) - Removed
stack_area
operation in favor ofArea.stack
classmethod (#1515) - Removed all mpld3 support (#1516)
- Added
opts
method 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
config
option ofhv.extension
. For instance,hv.extension('bokeh', config=dict(style_17=True))
(#1518)
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).
- ls as matplotlib linestyle alias dropped (PR #1203).
- mdims argument of conversion interface renamed to groupby (PR #1066).
- Replaced global alias state with Dimension.label (#1083).
- DynamicMap only update 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.
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.3
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).
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).
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 toDataset
(PR #620).
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 1b87c91e9).
- Fixed issue in coloring Point/Scatter objects by values (Issue #467).
Backwards compatibility:
- The behavior of the
scaling_factor
on Point and Scatter plots has changed now simply multiplyingarea
orwidth
(as defined by thescaling_method
). To disable scaling points by a dimension setsize_index=None
. - Removed hooks to display 3D Elements using the
BokehMPLRawWrapper
in bokeh (PR #477) - Renamed the DynamicMap mode
closed
tobounded
(PR #477)
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.
Documentation changes:
- 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_index
andsize_index
plot options support specifying dimension by name (Issue #391)- Added
Area
Element 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_format
plot 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)
Over the past two weeks since the 1.4 release, we have implemented several important bug fixes and have made several usability improvements.
New features:
- Improved help system. It is now possible to recursively list all the applicable documentation for a composite object. In addition, the documentation may now be filtered using a regular expression pattern. (PR #370)
- HoloViews now supports multiple active display hooks making it easier to use nbconvert. For instance, PNG data will be embedded in the notebook if the argument display_formats=['html','png'] is supplied to the notebook_extension. (PR #355)
- Improvements to the display of DynamicMaps as well as many new improvements to the Bokeh backend including better VLines/HLines and support for the Bars element. (PR #367 , PR #362, PR #339).
- New Spikes and BoxWhisker elements suitable for representing distributions as a sequence of lines or as a box-and-whisker plot. (PR #346, PR #339)
- Improvements to the notebook_extension. For instance, executing hv.notebook_extension('bokeh') will now load BokehJS and automatically activate the Bokeh backend (if available).
- Significant performance improvements when using the groupby operation on HoloMaps and when working with highly nested datastructures. (PR #349, PR #359)
Notable bug fixes:
- DynamicMaps are now properly integrated into the style system and can be customized in the same way as HoloMaps. (PR #368)
- Widgets now work correctly when unicode is used in the dimension labels and values (PR #376).
Over the past few months we have added several major new features and with the help of our users have been able to address a number of bugs and inconsistencies. We have closed 57 issues and added over 1100 new commits.
Major new features:
- Data API: The new data API brings an extensible system of to add new data interfaces to column based Element types. These interfaces allow applying powerful operations on the data independently of the data format. The currently supported datatypes include NumPy, pandas dataframes and a simple dictionary format. (PR #284)
- Backend API: In this release we completely refactored the rendering, plotting and IPython display system to make it easy to add new plotting backends. Data may be styled and pickled for each backend independently and renderers now support exporting all plotting data including widgets as standalone HTML files or with separate JSON data.
- Bokeh backend: The first new plotting backend added via the new backend API. Bokeh plots allow for much faster plotting and greater interactivity. Supports most Element types and layouts and provides facilities for sharing axes across plots and linked brushing across plots. (PR #250)
- DynamicMap: The new DynamicMap class allows HoloMap data to be generated on-the-fly while running a Jupyter IPython notebook kernel. Allows visualization of unbounded data streams and smooth exploration of large continuous parameter spaces. (PR #278)
Other features:
- Easy definition of custom aliases for group, label and Dimension names, allowing easier use of LaTeX.
- New Trisurface and QuadMesh elements.
- Widgets now allow expressing hierarchical relationships between dimensions.
- Added GridMatrix container for heterogeneous Elements and gridmatrix operation to generate scatter matrix showing relationship between dimensions.
- Filled contour regions can now be generated using the contours operation.
- Consistent indexing semantics for all Elements and support for boolean indexing for Columns and NdMapping types.
- New hv.notebook_extension function offers a more flexible alternative to %load_ext, e.g. for loading other extensions hv.notebook_extension(bokeh=True).
Experimental features:
- Bokeh callbacks allow adding interactivity by communicating between bokehJS tools and the IPython kernel, e.g. allowing downsampling based on the zoom level.
Notable bug fixes:
- Major speedup rendering large HoloMaps (~ 2-3 times faster).
- Colorbars now consistent for all plot configurations.
- Style pickling now works correctly.
API Changes:
- Dimension formatter parameter now deprecated in favor of value_format.
- Types of Chart and Table Element data now dependent on selected interface.
- DFrame conversion interface deprecated in favor of Columns pandas interface.
Minor bugfix release to address a small number of issues:
Features:
- Added support for colorbars on Surface Element (1cd5281).
- Added linewidth style option to SurfacePlot (9b6ccc5).
Bug fixes:
- Fixed inversion inversion of y-range during sampling (6ff81bb).
- Fixed overlaying of 3D elements (787d511).
- Ensuring that underscore.js is loaded in widgets (f2f6378).
- Fixed Python3 issue in Overlay.get (8ceabe3).
Minor bugfix release to address a number of issues that weren't caught in time for the 1.3.0 release with the addition of a small number of features:
Features:
- Introduced new
Spread
element to plot errors and confidence intervals (30d3184). ErrorBars
andSpread
elements now allow most Chart constructor types (f013deb).
Bug fixes:
- Fixed unicode handling for dimension labels (061e9af).
- Handling of invalid dimension label characters in widgets (a101b9e).
- Fixed setting of fps option for MPLRenderer video output (c61b9df).
- Fix for multiple and animated colorbars (5e1e4b5).
- Fix to Chart slices starting or ending at zero (edd0039).
Since the last release we closed over 34 issues and have made 380 commits mostly focused on fixing bugs, cleaning up the API and working extensively on the plotting and rendering system to ensure HoloViews is fully backend independent.
We'd again like to thank our growing user base for all their input, which has helped us in making the API more understandable and fixing a number of important bugs.
Highlights/Features:
- Allowed display of data structures which do not match the recommended nesting hierarchy (67b28f3, fbd89c3).
- Dimensions now sanitized for
.select
,.sample
and.reduce
calls (6685633, 00b5a66). - Added
holoviews.ipython.display
function to render (and display) any HoloViews object, useful for IPython interact widgets (0fa49cd). - Table column widths now adapt to cell contents (be90a54).
- Defaulting to matplotlib ticking behavior (62e1e58).
- Allowed specifying fixed figure sizes to matplotlib via
fig_inches
tuples using (width, None) and (None, height) formats (632facd). - Constructors of
Chart
,Path
andHistogram
classes now support additional data formats (2297375). ScrubberWidget
now supports all figure formats (c317db4).- Allowed customizing legend positions on
Bars
Elements (5a12882). - Support for multiple colorbars on one axis (aac7b92).
.reindex
onNdElement
types now support converting between key and value dimensions allowing more powerful conversions. (03ac3ce)- Improved support for casting between
Element
types (cdaab4e, b2ad91b, ce7fe2d, 865b4d5). - The
%%opts
cell magic may now be used multiple times in the same cell (2a77fd0) - Matplotlib rcParams can now be set correctly per figure (751210f).
- Improved
OptionTree
repr which now works with eval (2f824c1). - Refactor of rendering system and IPython extension to allow easy swapping of plotting backend (#141)
- Large plotting optimization by computing tight
bbox_inches
once (e34e339). - Widgets now cache frames in the DOM, avoiding flickering in some browsers and make use of jinja2 template inheritance. (fc7dd2b)
- Calling a HoloViews object without arguments now clears any associated custom styles. (9e8c343)
API Changes
- Renamed key_dimensions and value_dimensions to kdims and vdims respectively, while providing backward compatibility for passing and accessing the long names (8feb7d2).
- Combined x/y/zticker plot options into x/y/zticks parameters which now accept an explicit number of ticks, an explicit list of tick positions (and labels), and a matplotlib tick locator.
- Changed backend options in %output magic,
nbagg
andd3
are now modes of the matplotlib backend and can be selected withbackend='matplotlib:nbagg'
andbackend='matplotlib:mpld3'
respectively. The 'd3' and 'nbagg' options remain supported but will be deprecated in future. - Customizations should no longer be applied directly to
Store.options
; theStore.options(backend='matplotlib')
object should be customized instead. There is no longer a need to call the deprecatedStore.register_plots
method.
Since the last release we closed over 20 issues and have made 334 commits, adding a ton of functionality and fixing a large range of bugs in the process.
In this release we received some excellent feedback from our users, which has been greatly appreciated and has helped us address a wide range of problems.
Highlights/Features:
- Added new
ErrorBars
Element (f2b276b) - Added
Empty
pseudo-Element to define empty placeholders in Layouts (35bac9f1d) - Added support for changing font sizes easily (0f54bea)
- Support for holoviews.rc file (79076c8)
- Many major speed optimizations for working with and plotting HoloViews data structures (fe87b4c, 7578c51, 5876fe6, 8863333)
- Support for
GridSpace
with inner axes (93295c8) - New
aspect_weight
andtight
Layout plot options for more customizability of Layout arrangements (4b1f03d, e6a76b7) - Added
bgcolor
plot option to easily set axis background color (92eb95c) - Improved widget layout (f51af02)
- New
OutputMagic
css option to style html output (9d42dc2) - Experimental support for PDF output (1e8a59b)
- Added support for 3D interactivity with nbagg (781bc25)
- Added ability to support deprecated plot options in %%opts magic.
- Added
DrawPlot
simplifying the implementation of custom plots (38e9d44)
API changes:
-
Path
andHistogram
support new constructors (7138ef4, 03b5d38) -
New depth argument on the relabel method (f89b89f)
-
Interface to Pandas improved (1a7cd3d)
-
Removed
xlim
,ylim
andzlim
to eliminate redundancy. -
Renaming of various plot and style options including:
figure_*
tofig_*
vertical_spacing
andhorizontal_spacing
tovspace
andhspace
respectively
* Deprecation of confusing
origin
style option on RasterPlot -
Overlay.__getitem__
no longer supports integer indexing (useget
method instead)
Important bug fixes:
- Important fixes to inheritance in the options system (d34a931, 71c1f3a7)
- Fixes to the select method (df839bea5)
- Fixes to normalization system (c3ef40b)
- Fixes to
Raster
andImage
extents,__getitem__
and sampling. - Fixed bug with disappearing adjoined plots (2360972)
- Fixed plot ordering of overlaid elements across a
HoloMap
(c4f1685)
Highlights:
- Support for nbagg as a backend (09eab4f1)
- New .hvz file format for saving HoloViews objects (bfd5f7af)
- New
Polygon
element type (d1ec8ec8) - Greatly improved Unicode support throughout, including support for unicode characters in Python 3 attribute names (609a8454)
- Regular SelectionWidget now supports live rendering (eb5bf8b6)
- Supports a list of objects in Layout and Overlay constructors (5ba1866e)
- Polar projections now supported (3801b76e)
API changes (not backward compatible):
xlim
,ylim
,zlim
,xlabel
,ylabel
andzlabel
have been deprecated (081d4123)- Plotting options
show_xaxis
andshow_yaxis
renamed toxaxis
andyaxis
, respectively (13393f2a). - Deprecated IPySelectionWidget (f59c34c0)
In addition to the above improvements, many miscellaneous bug fixes were made.
Minor release addressing bugs and issues with 1.0.0.
Highlights:
- New separate Pandas Tutorial (8455abc3)
- Silenced warnings when loading the IPython extension in IPython 3 (aaa6861b)
- Added more useful installation options via
setup.py
(72ece4db) - Improvements and bug-fixes for the
%%opts
magic tab-completion (e0ad7108) DFrame
now supports standard constructor for pandas dataframes (983825c5)Tables
are now correctly formatted using the appropriateDimension
formatter (588bc2a3)- Support for unlimited alphabetical subfigure labelling (e039d00b)
- Miscellaneous bug fixes, including Python 3 compatibility improvements.
First public release available on GitHub and PyPI.