同时使用bokeh的TapTool和DataTable时,我遇到以下问题:
单击一个点(使用了TapTool)后,数据表中的选择不再显示在图中。
以下是Jupyter笔记本的最小示例:
from bokeh.plotting import show, output_notebook, figure
from bokeh.models import ColumnDataSource, OpenURL, TapTool
from bokeh.layouts import widgetbox, column
from bokeh.models.widgets import DataTable, TableColumn
source = ColumnDataSource(dict(
x=[1, 2, 3, 4, 5],
y=[6, 7, 2, 4, 5],
url=["http://www.stackoverflow.com"]*5))
p = figure(plot_width=400,
plot_height=400,
tools="tap,reset",
)
p.circle(source=source,
x="x",
y="y",
size=20,
color="navy",
alpha=0.5)
columns = [
TableColumn(field="x", title="X-Value"),
TableColumn(field="y", title="Y-Value"),
TableColumn(field="url", title="URL")
]
data_table = DataTable(source=source, columns=columns,
width=400, height=400)
url = "@url"
taptool = p.select(type=TapTool)
taptool.callback = OpenURL(url=url)
output_notebook()
show(column(p, widgetbox(data_table)))
预期的行为:从数据表中选择的内容会像在单击一个点之前一样在图中表示出来。
谢谢大家。
答案 0 :(得分:0)
问题解决了。这是散景0.13中的一个问题 使用anaconda时,我无法更新到1.0.1,所以我创建了一个新环境,其中bokeh可以是1.0.1,这个问题不再存在。