from dash import Dash, dcc, Output, Input
import dash_bootstrap_components as dbc
import plotly.express as px
df = px.data.medals_long()
app = Dash(__name__, external_stylesheets=[dbc.themes.SOLAR])
mytitle = dcc.Markdown(children='# Amount of medals per country')
mygraph = dcc.Graph(figure={})
dropdown = dcc.Dropdown(options=['Bar Plot', 'Scatter Plot'],
value='Bar Plot',
clearable=False)
app.layout = dbc.Container([mytitle, mygraph, dropdown])
@app.callback(
Output(mygraph, component_property='figure'),
Input(dropdown, component_property='value')
)
def update_graph(dropdown_input):
if dropdown_input == 'Bar Plot':
fig = px.bar(data_frame=df, x="nation", y="count", color="medal")
elif dropdown_input == 'Scatter Plot':
fig = px.scatter(data_frame=df, x="count", y="nation", color="medal",
symbol="medal")
return fig
if __name__=='__main__':
app.run_server(port=8053, debug=True)