将 HoloViews `套索工具` 选择导出到 Pandas/CSV

Export HoloViews `lasso tool` Selections to Pandas/CSV

我正在尝试使用 holoviews/hvplot 中的散点图来探索一些数据,然后将我 select 的东西导出到一个文件...基本上这样我就可以标记它 and/or给专家看。

我可以制作一个散点图和一个链接的 table,并显示来自套索工具的 selected 点。但是我不知道如何只显示 selected 点,然后将它们导出到 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 方法可用,但它似乎显示了所有要点。我错过了什么?

TIA

select 方法允许您在 Python 中按值应用 selection,因此与您在散景中执行的 selection 无关。如果您想访问使用 select 工具制作的 selection,您可以查看 Selection1D stream。诸如此类的链接流提供了一种机制来访问 Python 中 Javascript 的值。在您的示例中,您可以这样做:

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)

您终于可以在新单元格中访问并保存 selection:

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