from dash import Dash, html, dcc
import plotly.express as px
import pandas as pd

app = Dash(__name__)
server = app.server

# assume you have a "long-form" data frame
# see https://plotly.com/python/px-arguments/ for more options
df = pd.DataFrame({
    "Fruit": ["Apples", "Oranges", "Bananas", "Apples", "Oranges", "Bananas"],
    "Amount": [4, 1, 2, 2, 4, 5],
    "City": ["SF", "SF", "SF", "Montreal", "Montreal", "Montreal"]
})

fig = px.bar(df, x="Fruit", y="Amount", color="City", barmode="group")

app.layout = html.Div(children=[
    html.H1(children='Hello Dash'),

    html.Div(children='''
        Dash: A web application framework for your data.
    '''),

    dcc.Graph(
        id='example-graph',
        figure=fig
    )
])

if __name__ == '__main__':
    app.run_server(debug=True)
[(5, 'dash.Dash', 'Dash', False, 'from dash import Dash, html, dcc\n'), (10, 'pandas.DataFrame', 'pd.DataFrame', True, 'import pandas as pd\n'), (16, 'plotly.express.bar', 'px.bar', True, 'import plotly.express as px\n'), (19, 'dash.html.H1', 'html.H1', False, 'from dash import Dash, html, dcc\n'), (21, 'dash.html.Div', 'html.Div', False, 'from dash import Dash, html, dcc\n'), (25, 'dash.dcc.Graph', 'dcc.Graph', False, 'from dash import Dash, html, dcc\n')]