def test_rasterize_ndoverlay(self): ds = Dataset([(0.2, 0.3, 0), (0.4, 0.7, 1), (0, 0.99, 2)], kdims=['x', 'y', 'z']) ndoverlay = ds.to(Points, ['x', 'y'], [], 'z').overlay() expected = Image(([0.25, 0.75], [0.25, 0.75], [[1, 0], [2, 0]]), vdims=['Count']) img = rasterize(ndoverlay, dynamic=False, x_range=(0, 1), y_range=(0, 1), width=2, height=2) self.assertEqual(img, expected)
def test_rasterize_ndoverlay(self): ds = Dataset([(0.2, 0.3, 0), (0.4, 0.7, 1), (0, 0.99, 2)], kdims=['x', 'y', 'z']) ndoverlay = ds.to(Points, ['x', 'y'], [], 'z').overlay() expected = Image(([0.25, 0.75], [0.25, 0.75], [[1, 0], [2, 0]]), vdims=['Count']) img = rasterize(ndoverlay, dynamic=False, x_range=(0, 1), y_range=(0, 1), width=2, height=2) self.assertEqual(img, expected)
def visits_plot(dsets_visits, filters_to_metrics, summarized_visits=None): if not summarized_visits: pass plot = None dfc = None for filt, metrics in filters_to_metrics.items(): for metric in metrics: df = dsets_visits[filt][metric].compute() # drop inf/nan values with pd.option_context('mode.use_inf_as_na', True): df = df.dropna(subset = [metric]) label = '{} - {}'.format(filt, metric) df[label] = minmax_scale(df[metric]) df = df.groupby('visit') df = df[label].median().reset_index() if dfc is None: dfc = df.set_index('visit') else: dfc = dfc.merge(df.set_index('visit'), on='visit', how='outer', sort=True) dfc = dfc.stack(dropna=False, level=-1).reset_index() dfc = dfc.rename(columns={'level_1':'filters', 0:'median'}) dfc['visit'] = dfc['visit'].astype(str) ds = hv.Dataset(dfc, kdims=['visit','filters'], vdims=['median']) plot = ds.to(hv.Curve, 'visit', 'median').overlay('filters') plot = plot.opts(hv.opts.Curve(tools=['hover'])) plot = plot.redim(y=hv.Dimension('median', range=(-1,1))) # Now we rename the axis xlabel = 'visit' ylabel = 'normalized median' grid_style = {'grid_line_color': 'white', 'grid_line_alpha': 0.2} # # return plot.options(responsive=True, height=200, show_grid=True, # xlabel=xlabel, ylabel=ylabel, # xrotation=45, bgcolor="black", gridstyle=grid_style) return plot.opts(show_legend=False, show_grid=True, gridstyle=grid_style, xlabel=xlabel, ylabel=ylabel, responsive=True, aspect=5, bgcolor='black', xrotation=45)