Как получить метки нажатой позиции в тепловой карте Bokeh - PullRequest
0 голосов
/ 25 апреля 2018

У меня есть тепловая карта Боке. Я регистрирую обратный вызов и могу получить координаты x и y позиции нажатия. Есть ли способ получить метки x и y для одинаковых позиций? Похоже, что cb_data не содержит никакой полезной информации.

source = ColumnDataSource(data=dict(xname=xname, 
                                    yname=yname, 
                                    colors=color, 
                                    alphas=alpha,
                                    means=means.flatten(),
                                    stds=stds.flatten(),))

callback = CustomJS(args=dict(source=source), code="""alert(JSON.stringify(cb_obj));""")

p = figure(title="Plot",
           x_axis_location="above", 
           tools="pan,hover,save,wheel_zoom,box_zoom,reset",
           x_range=labels, y_range=list(reversed(labels)))
p.js_on_event('tap', callback)

1 Ответ

0 голосов
/ 25 апреля 2018

Вот как я наконец это сделал.

tapCallback = CustomJS(args=dict(source=source), code="""
var index = source.selected['1d'].indices;
xlabel = source.data.xname[index];
ylabel = source.data.yname[index];
alert(ylabel + '-' + xlabel);
""")

p.select_one(HoverTool).tooltips = [('OD:', '@yname-@xname'),('mean', '@means'),('std', '@stds'),]
p.select_one(TapTool).callback = tapCallback
...