Reputation: 75
I'm new to bokeh and I have aquery regarding button onclick event, the code is provided below:
x = widgetbox(button)
show(x)
fruits = ['Answered', 'Unanswered','Total']
top1=[1,2,3]
def callback():
p = figure(x_range=fruits, plot_height=250, title="sophia bot")
p.vbar(x=fruits, top=top1, width=0.9)
p.xgrid.grid_line_color = None
p.y_range.start = 0
output_file("abc.html")
show(p)
button_one = Button(label="Start", disabled=True, callback=callback)
show(button_one)
but this isnt performing the action, the following code when used alone, does plot the graph, i want the graph to be shown alongisde when i clicke the button.
fruits = ['Answered', 'Unanswered','Total']
top1=[1,2,3]
p = figure(x_range=fruits, plot_height=250, title="sophia bot")
p.vbar(x=fruits, top=top1, width=0.9)
p.xgrid.grid_line_color = None
p.y_range.start = 0
output_file("abc.html")
show(p)
Thanks
Upvotes: 3
Views: 14366
Reputation: 9620
You must assign the callback to the button like this:
from bokeh.models import Button
from bokeh.io import curdoc
bt = Button(label='Click me')
def change_click():
print('I was clicked')
bt.on_click(change_click)
curdoc().add_root(bt)
Launch this with bokeh serve --show example.py
.
Note: Also take a look at my question where I talk about dynamic layout
Upvotes: 6