如何获取python侧图中的单击坐标?

时间:2019-06-03 17:53:56

标签: python bokeh

我有一个带有圆圈的绘图,我希望用户能够选择圆圈,然后我想根据圆圈在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)```

1 个答案:

答案 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)