Selection1d points

Title
Point Selection1D stream example
Description
A linked streams example demonstrating how to use Selection1D to get currently selected points and dynamically compute statistics of selection.
Backends
Bokeh
Tags
streams, selection, interactive
In [ ]:
import numpy as np
import holoviews as hv
from holoviews import streams
hv.extension('bokeh')
In [ ]:
%%opts Points [tools=['box_select', 'lasso_select']]

# Declare some points
points = hv.Points(np.random.randn(1000,2 ))

# Declare points as source of selection stream
selection = streams.Selection1D(source=points)

# Write function that uses the selection indices to slice points and compute stats
def selected_info(index):
    selected = points.iloc[index]
    if index:
        label = 'Mean x, y: %.3f, %.3f' % tuple(selected.array().mean(axis=0))
    else:
        label = 'No selection'
    return selected.relabel(label)(style=dict(color='red'))

# Combine points and DynamicMap
points + hv.DynamicMap(selected_info, streams=[selection])

Download this notebook from GitHub (right-click to download).