散景图:通过选定的条形图更改线图

问题描述 投票:2回答:1

我一直在寻找,但还没有找到一个有效的答案,所以我想我会问。

一切都符合规范,除非我点击statesbp hbar图,我似乎无法触发一个获取所选条形值的calback函数(在本例中为hbar_select)。我在回调函数中添加了一个print语句,当服务器运行时,我在终端中看不到这个消息。

我需要做些什么来通过回调来选择条形图?

提前致谢,

丰富

hbar_source = ColumnDataSource(data=dict(state=[], sessions=[],))
hbartools = 'tap'
statesbp = figure(y_range=state_data.sort_values('sessions')['state'].values,plot_width=300,plot_height=500, tools='tap', title='Sessions By State')
statesbp.x_range.start = 0
statesbp.hbar(y='state', right='sessions', height=.5, color='navy', source=hbar_source)

def update(selected=None):
    data = get_data(state=selected)
    source.data = source.from_df(data)
    source_static.data = source.data
    ts1.title.text = selected

def hbar_select(attrname, old, new):
    index_of_selected = new['1d']['indices'][0]
    print(index_of_selected)
    update(selected = index_of_selected)

def update_hbar():
    data = get_states()
    hbar_source.data = hbar_source.from_df(data)


#on hbar select, update line chart
hbar_source.on_change('selected',hbar_select)

# initialize data
update()
update_hbar()

curdoc().add_root(series)
curdoc().title = "Website Visits"

Bokeh working plot

python-3.x bokeh
1个回答
0
投票

现在你正在寻找hbar_source.selected的变化,但这不会改变,它将永远是一个Selection对象!你应该将这一行改为hbar_source.selected.on_change('indices',hbar_select)。当您在ColumnDataSource中选择条形索引时,这将更改。

© www.soinside.com 2019 - 2024. All rights reserved.