使用RadioButtonGroup,Python Bokeh更改Gridplot

时间:2018-11-30 22:05:14

标签: python bokeh

亲爱的

我有3个网格图,并试图根据单选按钮选择替换网格图。例如,如果我选择611,则grid1应该可见,而当我选择612(grid2)时,则应该可见。我一直在搜索,但无法解决。我已经尝试了多种方法,但是没有任何效果。请帮助我指导如何实现该目标。

请在我的代码下面找到。

grid1 = gridplot([[V1_Traffic, D1_Traffic]])
grid2 = gridplot([[V2_Traffic, D2_Traffic]])
grid3 = gridplot([[V3_Traffic, D3_Traffic]])

def update_plot(attrname, old, new):

    if button_group.labels[0] == '611':
        curdoc().clear()
        curdoc().add_root(lay_out)
        # curdoc().add_root(grid)
        #lay_out = layout([[button_group]])
        show(grid1)

    if button_group.labels[1] == '612':
        curdoc().clear()
        curdoc().add_root(lay_out)
        # curdoc().add_root(grid2)
        #lay_out = layout([[button_group]])
        show(grid3)

    if button_group.labels[2] == '613':
        curdoc().clear()
        curdoc().add_root(lay_out)
        # curdoc().add_root(grid3)
        #lay_out = layout([[button_group]])
        show(grid3)


button_group = RadioButtonGroup(labels=["611", "612", "613"], active=0)
button_group.on_change("active", update_plot)


# create layout and add to curdoc
lay_out = layout([[button_group]])
curdoc().add_root(grid)
curdoc().add_root(lay_out)

感谢您的宝贵时间。最好的问候

1 个答案:

答案 0 :(得分:1)

亲爱的

我已经找到解决方案并开始工作。请在我的代码下面找到。

def update_plot(attrname, old, new):

    if options[button_group.active] == '611':
        curdoc().clear()
        curdoc().add_root(lay_out)
        curdoc().add_root(grid)

    if options[button_group.active] == '612':
        curdoc().clear()
        curdoc().add_root(lay_out)
        curdoc().add_root(p2)

    if options[button_group.active] == '613':
        curdoc().clear()
        curdoc().add_root(lay_out)
        curdoc().add_root(p3)


options = ["611", "612", "613"]
button_group = RadioButtonGroup(labels=options, active=0)
button_group.on_change("active", update_plot)


# create layout and add to curdoc
lay_out = layout([[button_group]])
curdoc().add_root(grid)
curdoc().add_root(lay_out)

索引为button_group.labels[0]的单选按钮不起作用,因此,请执行额外的步骤对其进行修改

options = ["611", "612", "613"]
button_group = RadioButtonGroup(labels=options, active=0)

并通过

调用
if options[button_group.active] == '612'

curdoc().clear()清除页面上的所有内容并将其替换为新的网格数据。

curdoc().add_root(lay_out)显示单选按钮

curdoc().add_root(p3)以显示新网格

我是编程新手。我不确定这是一个好的解决方案还是不好的解决方案,但目前对我有用:)。

再次感谢您的宝贵时间。 最好的问候