我正在尝试使用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
方法可用,但似乎可以显示所有要点。我想念什么?
TIA
答案 0 :(得分:2)
select
方法允许您在Python中按值应用选择,因此与您在bokeh中执行的选择无关。如果要访问使用选择工具所做的选择,可以查看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)
最后在一个新单元格中,您可以使用以下方法访问和保存选择:
points.iloc[sel.index].data.to_csv('selected.csv')