Экспорт HoloViews `Лассо инструмент` Выбор в Pandas / CSV - PullRequest
0 голосов
/ 17 мая 2019

Я пытаюсь использовать точечную диаграмму в holoviews/hvplot, чтобы исследовать некоторые данные, а затем экспортировать выбранные мной файлы в файл ... в основном, чтобы я мог пометить их и / или показать эксперту.

Я могу сделать точечную диаграмму и таблицу, которая связана и показывает выбранные точки из инструмента лассо. НО я не могу понять, как показать только выбранные точки и затем экспортировать их либо в Pandas dataframe, либо во что-либо еще, с чем я мог бы работать.

Мой код похож на следующий.

points = df.hvplot.scatter(x="comp1", y="comp2", c="label", width=1000, height=1000).opts(tools=["hover", "lasso_select", "box_select"])
table = hv.Table(points, ["comp1", "comp2"], "label")
DataLink(points, table)
(table + points)

Я вижу, что points имеет метод select, но, похоже, он показывает все точки. Что мне не хватает?

ТИА

1 Ответ

2 голосов
/ 17 мая 2019

Метод select позволяет применять выбор по значению в Python, поэтому не имеет ничего общего с выбором, выполненным в боке.Если вы хотите получить доступ к выбору, сделанному с помощью инструмента выбора, вы можете взглянуть на Selection1D stream .Связанные потоки, такие как этот, предоставляют механизм для доступа к значениям из Javascript в Python.В вашем примере вы могли бы сделать что-то вроде этого:

points = df.hvplot.scatter(x="comp1", y="comp2", c="label", width=1000, height=1000).opts(tools=["hover", "lasso_select", "box_select"])
table = hv.Table(points, ["comp1", "comp2"], "label")
DataLink(points, table)
sel = hv.streams.Selection1D(source=points)
(table + points)

Наконец, в новой ячейке вы можете получить доступ и сохранить выделение с помощью:

points.iloc[sel.index].data.to_csv('selected.csv')
...