Изменение gridplot с помощью RadioButtonGroup, Python Bokeh - PullRequest
0 голосов
/ 01 декабря 2018

Уважаемые,

Я получил три сеточных графика и пытался заменить базу сеточных графиков при выборе радиокнопки.например, если я выбираю 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 голосов
/ 01 декабря 2018

дорогие,

Я получил решение и заставил его работать.пожалуйста, найдите ниже мой код.

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) дляотобразить новую сетку

Я новичок в программировании.Я не уверен, является ли это хорошим решением или плохим решением, но в данный момент оно работает для меня:).

Еще раз спасибо за ваше время.С наилучшими пожеланиями

...