diff --git a/holoviews/operation/datashader.py b/holoviews/operation/datashader.py index b7d845b197..f4ace795d8 100644 --- a/holoviews/operation/datashader.py +++ b/holoviews/operation/datashader.py @@ -255,7 +255,7 @@ def get_agg_data(cls, obj, category=None): paths = [p.compute() if isinstance(p, dd.DataFrame) else p for p in paths] df = pd.concat(paths) else: - df = paths[0] + df = paths[0] if paths else pd.DataFrame([], columns=[x.name, y.name]) if category and df[category].dtype.name != 'category': df[category] = df[category].astype('category') @@ -360,6 +360,10 @@ def _process(self, element, key=None): xarray = xr.DataArray(np.full((height, width), np.NaN, dtype=np.float32), dims=['y', 'x'], coords={'x': xs, 'y': ys}) return self.p.element_type(xarray) + elif not len(data): + xarray = xr.DataArray(np.full((height, width), np.NaN, dtype=np.float32), + dims=[y.name, x.name], coords={x.name: xs, y.name: ys}) + return self.p.element_type(xarray) cvs = ds.Canvas(plot_width=width, plot_height=height, x_range=x_range, y_range=y_range)