Обратный вызов Bokeh Python для печати нового значения атрибута - PullRequest
0 голосов
/ 20 декабря 2018

Я пытаюсь получить данные для выбранных лассо точек на диаграмме рассеяния Боке с помощью обратного вызова.

Я работаю над примером, показанным здесь: Обратный вызов Bokeh Server из инструментов

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?Это поможет мне понять, как я смогу получить доступ к данным выбранных функций для использования в качестве источника для другой диаграммы.

1 Ответ

0 голосов
/ 20 декабря 2018

Этот связанный код очень устарел.Правильный способ сделать это с любой относительно недавней версией 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)
...