# Buggy code
def _apply_transforms(self, element, data, ranges, style, group=None):
    if element.ndims > 0:
        element = element.aggregate(function=np.mean)
    else:
        element = element.clone([(element.aggregate(function=np.mean),)])
    return super(BoxWhiskerPlot, self)._apply_transforms(
        element, data, ranges, style, group
    )


# Traceback (holoviews.core.data.interface.DataError)
Error
Traceback (most recent call last):
File "/home/holoviews/holoviews/plotting/bokeh/element.py", line 1205, in _init_glyphs
group_style = self._apply_transforms(element, ds_data, ranges, group_style, style_group)
File "/home/holoviews/holoviews/plotting/bokeh/stats.py", line 105, in _apply_transforms
element = element.clone([(element.aggregate(function=np.mean),)])
File "/home/holoviews/holoviews/core/data/__init__.py", line 852, in clone
return super(Dataset, self).clone(data, shared_data, new_type, *args, **overrides)
File "/home/holoviews/holoviews/core/dimension.py", line 688, in clone
return clone_type(data, *args, **{k:v for k,v in settings.items()
File "/home/holoviews/holoviews/core/data/__init__.py", line 210, in __init__
datatype=kwargs.get('datatype'))
File "/home/holoviews/holoviews/core/data/interface.py", line 236, in initialize
(data, dims, extra_kws) = interface.init(eltype, data, kdims, vdims)
File "/home/holoviews/holoviews/core/data/multipath.py", line 44, in init
datatype=cls.subtypes)
File "/home/holoviews/holoviews/core/data/interface.py", line 251, in initialize
raise DataError(error)
holoviews.core.data.interface.DataError: None of the available storage backends were able to support the supplied data format.

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
File "/usr/lib/python3.5/unittest/case.py", line 59, in testPartExecutor
yield
File "/usr/lib/python3.5/unittest/case.py", line 605, in run
testMethod()
File "/home/holoviews/holoviews/tests/plotting/bokeh/testviolinplot.py", line 90, in test_violin_empty
plot = bokeh_renderer.get_plot(violin)
File "/home/holoviews/holoviews/plotting/bokeh/renderer.py", line 134, in get_plot
plot = super(BokehRenderer, self_or_cls).get_plot(obj, renderer, **kwargs)
File "/home/holoviews/holoviews/plotting/renderer.py", line 207, in get_plot
plot.update(init_key)
File "/home/holoviews/holoviews/plotting/plot.py", line 595, in update
return self.initialize_plot()
File "/home/holoviews/holoviews/plotting/bokeh/element.py", line 1049, in initialize_plot
self._init_glyphs(plot, element, ranges, source)
File "/home/holoviews/holoviews/plotting/bokeh/element.py", line 1205, in _init_glyphs
group_style = self._apply_transforms(element, ds_data, ranges, group_style, style_group)
File "/home/holoviews/holoviews/core/options.py", line 297, in __exit__
raise AbbreviatedException(etype, value, traceback)
holoviews.core.options.AbbreviatedException: DataError: None of the available storage backends were able to support the supplied data format.

# Fixed code
def _apply_transforms(self, element, data, ranges, style, group=None):
    if element.ndims > 0:
        element = element.aggregate(function=np.mean)
    else:
        agg = element.aggregate(function=np.mean)
        if isinstance(agg, Dimensioned):
            element = agg
        else:
            element = element.clone([(element,)])
    return super(BoxWhiskerPlot, self)._apply_transforms(
        element, data, ranges, style, group
    )