4

bokeh.models.actions.Action中,有一个callback用于用户定义回调的类。它隐式地plot_object传递电流。cb_obj

但是,我不知道如何从plot_object.

    fig = figure()
    fig.circle(x=[1,2,3], y=[4,5,6])
    tap_tool.action = Callback(
        code="""
            alert('clicked')
            console.log(cb_obj)

        """)

如何访问信息,例如单击的圆圈的 x、y?在模板字符串中,我们可以使用@variable$x获取有关每个数据点的信息。

此外,在我看来Circle Glyph,尽管有 3 个圆圈,但只有 1 个。所以字形与数据点的数量无关,对吗?

cb_obj是指 thisGlyph还是glyphRenderer指包含这个字形的那个?

在文档中,一个示例显示:

    var inds = cb_obj.get('selected')['1d'].indices;
    var d1 = cb_obj.get('data');

从哪里来select, id, indices, data?的结构是什么cb_obj

4

2 回答 2

2

从 Bokeh 0.9.0 开始,对于TapTool动作, 的值cb_obj是报告命中的字形的数据源。此示例显示如何访问数据列:

https://docs.bokeh.org/en/latest/docs/user_guide/interaction/callbacks.html#customjs-for-tools

于 2015-06-18T11:54:13.157 回答
1

您实际上可以通过以下方式检查对象:

console.log(cb_data);
console.log(cb_obj);

例如使用这个回调来检查两个对象的内容:

scode = """
        console.log(cb_obj);
        console.log(cb_data);
        """
taptool.callback = CustomJS(args=dict(source=source),code = scode)

如果您在 chrome 中运行,您将在日志中看到 cb_obj 和 cb_data 的内容(View-Developer-Javascripts Console)

于 2016-10-13T22:48:03.363 回答