python - 在 Bokeh 图中添加可点击的圆圈

标签 python data-visualization bokeh

我正在尝试向绘制在 Bokeh 图上的圆圈添加某些回调。每个圆圈都与列数据源中的特定记录相关联。每当单击相应的圆圈时,我都想访问该记录。有什么方法可以在 Bokeh 中向圆圈添加回调? 我该怎么做?

我正在使用以下代码

fig =figure(x_range=(-bound, bound), y_range=(-bound, bound),
                plot_width=800, plot_height=500,output_backend="webgl")

fig.circle(x='longitude',y='latitude',size=2,source=source,fill_color="blue",
                fill_alpha=1, line_color=None)

最佳答案

然后您要向数据源的selected 属性添加一个on_change 回调。这是一个最小的例子。如上所述,python 回调需要 Bokeh 服务器(这是 python 回调实际运行的地方,因为浏览器对 python 一无所知),所以这必须运行,例如bokeh serve --show example.py(或者,如果您在笔记本中,请遵循 this example notebook 中的模式)。

# example.py

from bokeh.io import curdoc
from bokeh.models import ColumnDataSource
from bokeh.plotting import figure

source = ColumnDataSource(data=dict(x=[1,2,3], y=[4,6,5]))

p = figure(title="select a circle", tools="tap")
p.circle('x', 'y', size=25, source=source)

def callback(attr, old, new):
    # This uses syntax for Bokeh >= 0.13
    print("Indices of selected circles: ", source.selected.indices)

source.selected.on_change('indices', callback)

curdoc().add_root(p)

关于python - 在 Bokeh 图中添加可点击的圆圈,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49613528/

相关文章:

python - Ctypes 获取窗口位置

python - 随机 : what is the default seed?

javascript - 在 d3 js 中切割底部圆弧的矩形

javascript - 需要D3动画画线的说明

python bokeh 在服务器端或客户端运行

python - 为什么在 Bokeh 中调整 slider 后,包含度量名称的 TableColumn 消失了?

python - 为什么我在抓取网站时会收到 SSL 错误?

python - 有效地改变numpy数组的顺序

data-visualization - Vega-Lite:从星期一开始的一周和一般错误的周数

python - Holoviews/Bokeh 面积图 将 Hovertool 添加到面积图