【问题标题】:Bokeh python callback to print new attribute value散景 python 回调以打印新属性值
【发布时间】:2018-12-20 04:10:00
【问题描述】:

我正在尝试使用回调获取散景散点图上套索选定点的数据。

我正在研究此处显示的示例:Bokeh Server callback from tools

from bokeh.plotting import figure, curdoc, show, output_file
from bokeh.models import ColumnDataSource
from bokeh.layouts import column
from bokeh.io import curdoc
import pandas as pd
import numpy as np

df = pd.DataFrame(np.random.randint(0,100,size=(100, 2)), columns=list('XY'))

source=ColumnDataSource(df)

p = figure(title="Some Figure", tools=["lasso_select"])

pglyph = p.circle(x='X', y='Y', source=source)

def callback(attr, old, new):
    # The index of the selected glyph is : new['1d']['indices'][0]
    patch_name =  source.data['X'][new['1d']['indices'][0]]
    print("LassoTool callback executed on Patch {}".format(patch_name))


pglyph.data_source.on_change('selected',callback)


curdoc().add_root(column(p))

#bokeh serve --show TestApp.py

使用 Bokeh Server 运行此脚本时,我需要进行哪些更改才能使打印功能正常工作?这将帮助我了解如何访问所选要素的数据以用作另一个图表的来源。

【问题讨论】:

    标签: bokeh


    【解决方案1】:

    链接的代码已经过时了。使用任何相对较新版本的 Bokeh 执行此操作的正确方法是:

    def callback(attr, old, new):
        patch_name =  source.data['X'][new]
        print("LassoTool callback executed on Patch {}".format(patch_name))
    
    pglyph.data_source.selected.on_change('indices',callback)
    

    【讨论】:

    • 谢谢。如果您通过命令提示符调用bokeh serve --show 来运行代码,您是否看到打印的语句?另外,我保证我首先尝试在 Bokeh 文档中找到解决方案。如果有一些资源可以让我阅读更多关于 python 回调的信息,请告诉我?否则,我只是通过 StackOverflow 上的 Bokeh 问题/答案来了解人们的示例。
    • 如果使用上面的代码更改而不是问题中的原始代码运行,是的,打印语句会显示。我运行的是 1.0.2 版
    猜你喜欢
    • 2018-05-11
    • 1970-01-01
    • 1970-01-01
    • 2018-04-22
    • 1970-01-01
    • 2020-10-13
    • 2021-09-29
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多