From f07021f1eb9be8cd77d89fb636a33d6767536fc9 Mon Sep 17 00:00:00 2001
From: Philipp Rudiger
Date: Fri, 2 Feb 2018 03:44:38 +0000
Subject: [PATCH] Fixed bug computing categorical datashader aggregates
---
holoviews/operation/datashader.py | 11 ++++++-----
1 file changed, 6 insertions(+), 5 deletions(-)
diff --git a/holoviews/operation/datashader.py b/holoviews/operation/datashader.py
index 69050e750f..ff622935e2 100644
--- a/holoviews/operation/datashader.py
+++ b/holoviews/operation/datashader.py
@@ -374,9 +374,10 @@ def _process(self, element, key=None):
raise ValueError("Aggregation column %s not found on %s element. "
"Ensure the aggregator references an existing "
"dimension." % (column,element))
+ name = column
if isinstance(agg_fn, ds.count_cat):
- name = '%s Count' % agg_fn.column
- vdims = [dims[0](column)]
+ name = '%s Count' % column
+ vdims = [dims[0](name)]
else:
vdims = Dimension('Count')
params = dict(get_param_values(element), kdims=[x, y],
@@ -400,7 +401,7 @@ def _process(self, element, key=None):
for c in agg.coords[column].data:
cagg = agg.sel(**{column: c})
eldata = cagg if ds_version > '0.5.0' else (xs, ys, cagg.data)
- layers[c] = self.p.element_type(eldata, **params)
+ layers[c] = self.p.element_type(eldata, **dict(params, vdims=vdims))
return NdOverlay(layers, kdims=[data.get_dimension(column)])
@@ -725,12 +726,12 @@ def concatenate(cls, overlay):
"""
if not isinstance(overlay, NdOverlay):
raise ValueError('Only NdOverlays can be concatenated')
- xarr = xr.concat([v.data.T for v in overlay.values()],
+ xarr = xr.concat([v.data.transpose() for v in overlay.values()],
pd.Index(overlay.keys(), name=overlay.kdims[0].name))
params = dict(get_param_values(overlay.last),
vdims=overlay.last.vdims,
kdims=overlay.kdims+overlay.last.kdims)
- return Dataset(xarr.T, datatype=['xarray'], **params)
+ return Dataset(xarr.transpose(), datatype=['xarray'], **params)
@classmethod