我有一个带有圆圈的绘图,我希望用户能够选择圆圈,然后我想根据圆圈在python端做一些事情。
我尝试了JS回调,但收到错误消息:
**
警告:bokeh.embed.util: 您正在生成独立的HTML / JS输出,而是试图用实际的Python 回调(即使用on_change或on_event)。此组合无效。 仅JavaScript回调可与独立输出一起使用。欲了解更多 有关使用Bokeh进行JavaScript回调的信息,请参见:
http://bokeh.pydata.org/en/latest/docs/user_guide/interaction/callbacks.html 另外,要使用真实的Python回调,Bokeh服务器应用程序可以 使用。有关构建和运行Bokeh应用程序的更多信息,请参见: http://bokeh.pydata.org/en/latest/docs/user_guide/server.html
**
如果您想尝试的话,这里有一些代码。
from bokeh.plotting import figure, output_file, show
output_file("openurl.html")
p = figure(plot_width=400, plot_height=400, tools="tap", title="Click the Dots")
source = ColumnDataSource(data=dict(
x=[1, 2, 3, 4, 5],
y=[2, 5, 8, 2, 7],
color=["navy", "orange", "olive", "firebrick", "gold"]
))
p.circle('x', 'y', color='color', size=20, source=source)```
答案 0 :(得分:0)
我不太了解您的问题,但是您可以使用悬停工具来添加交互,或者使用LabelSet来显示x / y以及点。
from bokeh.plotting import figure
from bokeh.io import show, output_notebook
output_notebook()
p = figure(plot_width=400, plot_height=400, tools="tap, reset, hover", title="Click
the Dots", tooltips = [('x', '@x'),('y','@y')])
source = ColumnDataSource(data=dict(
x=[1, 2, 3, 4, 5],
y=[2, 5, 8, 2, 7],
color=["navy", "orange", "olive", "firebrick", "gold"]
))
p.circle('x', 'y', color='color', size=20, source=source)
show(p)