我正在尝试使用Bokeh构建一个交互式工具,允许用户从散点图中选择一个点子集,然后标记或注释这些点。理想情况下,用户提供的输入将更新数据框中该样本行的“标签”字段。
下面的代码允许用户选择点,但是我如何制作它以便他们可以从文本输入小部件标记那些选定的点,例如text = TextInput(value="default", title="Label:")
,这样做,更改数据框中该示例的“标签”字段?
import pandas as pd
import numpy as np
from bokeh.plotting import figure, output_file, show, ColumnDataSource
from bokeh.models import HoverTool
from bokeh.models.widgets import TextInput
data = pd.DataFrame()
data["x"] = np.random.randn(100)
data["y"] = np.random.randn(100)
data["label"] = "other"
x=data.x.values
y=data.y.values
label=data.label.values
output_file("toolbar.html")
source = ColumnDataSource(
data=dict(
x=x,
y=y,
_class=label,
)
)
hover = HoverTool(
tooltips=[
("index", "$index"),
("(x,y)", "($x, $y)"),
("class", "@_class"),
]
)
p = figure(plot_width=400, plot_height=400, tools=[hover,"lasso_select","crosshair",],
title="Mouse over the dots")
p.circle('x', 'y', size=5, source=source)
show(p)