Python 散景问题回调
Python callback in Bokeh issue
我试图根据这个简单的例子让回调函数在散景中工作:
from bokeh.plotting import figure, curdoc
from bokeh.layouts import column
from bokeh.models import ColumnDataSource
TOOLS = "tap,reset"
p = figure(title="Some Figure", tools=TOOLS)
source = ColumnDataSource(dict(x=[[1, 3, 2], [3, 4, 6, 6]],
y=[[2, 1, 4], [4, 7, 8, 5]], name=['A', 'B']))
pglyph = p.patches('x', 'y', source=source)
def callback(attr, old, new):
# The index of the selected glyph is : new['1d']['indices'][0]
print("In callback")
patch_name = source.data['name'][new['1d']['indices'][0]]
print("TapTool callback executed on Patch {}".format(patch_name))
pglyph.data_source.on_change('selected',callback)
curdoc().add_root(column(p))
当我加载页面并单击多边形时,我没有看到回调被执行。
缺少什么?
那是因为 selected
属性值没有改变。包含的对象被更改,Bokeh 不会检测到深度更改。
尝试将回调函数和下一行替换为:
def callback(attr, old, new):
print("In callback")
patch_name = source.data['name'][new[0]]
print("TapTool callback executed on Patch {}".format(patch_name))
pglyph.data_source.selected.on_change('indices', callback)
我试图根据这个简单的例子让回调函数在散景中工作:
from bokeh.plotting import figure, curdoc
from bokeh.layouts import column
from bokeh.models import ColumnDataSource
TOOLS = "tap,reset"
p = figure(title="Some Figure", tools=TOOLS)
source = ColumnDataSource(dict(x=[[1, 3, 2], [3, 4, 6, 6]],
y=[[2, 1, 4], [4, 7, 8, 5]], name=['A', 'B']))
pglyph = p.patches('x', 'y', source=source)
def callback(attr, old, new):
# The index of the selected glyph is : new['1d']['indices'][0]
print("In callback")
patch_name = source.data['name'][new['1d']['indices'][0]]
print("TapTool callback executed on Patch {}".format(patch_name))
pglyph.data_source.on_change('selected',callback)
curdoc().add_root(column(p))
当我加载页面并单击多边形时,我没有看到回调被执行。
缺少什么?
那是因为 selected
属性值没有改变。包含的对象被更改,Bokeh 不会检测到深度更改。
尝试将回调函数和下一行替换为:
def callback(attr, old, new):
print("In callback")
patch_name = source.data['name'][new[0]]
print("TapTool callback executed on Patch {}".format(patch_name))
pglyph.data_source.selected.on_change('indices', callback)