Как я могу получить доступ к значениям, выбранным через поток в Holoviews? - PullRequest
0 голосов
/ 26 апреля 2019

Я строю графики и выбираю точки с помощью Holoviews

import holoviews as hv
import numpy as np

N = 100
x = np.random.normal(size=N)
y = np.random.normal(size=N)

points = hv.Points((x, y))

selection = hv.streams.Selection1D(points)

points.options(tools=["lasso_select"])

Как я могу получить индексы, выбранные из лассо в качестве вектора в моей среде Python для дальнейшего анализа?

1 Ответ

1 голос
/ 25 июня 2019

Существует достаточно документации, начните, например, здесь: http://holoviews.org/reference/streams/bokeh/Selection1D_tap.html

По сути, вам нужно связать ваш поток выбора с элементом holoviews через DynamicMap.Затем selection будет содержать выбранные вами индексы.

Я адаптировал следующий пример из документов:

import holoviews as hv
import numpy as np
hv.extension('bokeh')

N = 100
x = np.random.normal(size=N)
y = np.random.normal(size=N)

points = hv.Points((x, y))

selection = hv.streams.Selection1D(source=points, index=[0]) # set default arg

def process_selection(index):
    print(index)
    return hv.VLine(np.mean(x[index]))


dmap = hv.DynamicMap(process_selection, streams=[selection])

l = points * dmap

l.options(hv.opts.Points(tools=['tap'], size=10))

Затем сделайте некоторый выбор.Теперь print(selection) будет содержать выбранные индексы

...