Python Forum

Full Version: Getting barplots from the dropdown menu
You're currently viewing a stripped down version of our content. View the full version with proper formatting.
I have several bar plots in same figure as below:

import pandas as pd
from bokeh.models import ColumnDataSource
from bokeh.plotting import figure, show, output_notebook
from bokeh.transform import dodge
output_notebook()

df = pd.DataFrame({
    'Apple':[10,20,25],
    'IBM':[20,18,8],
    'Lenovo':[16,28,22],
    'Dell':[4,15,23],
    'Year':['2000', '2005', '2010']
})

source = ColumnDataSource(df)

p = figure(x_range=df['Year'], title="Bar plot",height=350)

p.vbar(x=dodge('Year', -0.3, range=p.x_range), top='Apple', source=source,
       width=0.19,  legend_label="Apple")
p.vbar(x=dodge('Year',  -0.1,  range=p.x_range), top='IBM', source=source,
       width=0.19,  legend_label="IBM")
p.vbar(x=dodge('Year',  0.1, range=p.x_range), top='Lenovo', source=source,
       width=0.19,  legend_label="Lenovo")
p.vbar(x=dodge('Year',  0.3, range=p.x_range), top='Dell', source=source,
       width=0.19,  legend_label="Dell")

p.x_range.range_padding = 0.1
p.xgrid.grid_line_color = None
p.legend.orientation = "horizontal"

show(p)
I can instead use dropdown menu for the Year as below:

menu_widget = list(df['Year'])

#Create the Dropdown

menu_dropdown = Dropdown(label="Select Years", menu=menu_widget)


show(widgetbox(menu_dropdown))
How do I handle events for displaying indiviudal plots for each year .
https://docs.bokeh.org/en/2.4.2/docs/user_guide/interaction/widgets.html