python 如何构造具有两个唐斯菜单的条形图

byqmnocz  于 2023-02-21  发布在  Python
关注(0)|答案(1)|浏览(84)

如何构造一个带有两个下拉菜单的虚线条形图?在我的示例中,数据存储如下,这与其他示例不同:
table example
我知道如何用一个下拉菜单,并尝试了一些事情的第二个。但是,我不能弄清楚如何功能将需要看起来像与第二个输入。

import dash
import dash_core_components as dcc
import dash_html_components as html
from dash.dependencies import Input, Output
import plotly.express as px
import pandas as pd

df = pd.read_excel('cities.xlsx',engine='openpyxl')

app = dash.Dash()

app.layout = html.Div([
        html.Div([
            dcc.Dropdown(
            id= "selected_statistic",
            options=[
            {'label': 'Population', 'value': 'pop'},
            {'label': 'Area', 'value': 'a'},
            {'label': 'Density', 'value': 'dens'}
        ],
            value='pop')
],          style={'width': '48%', 'display': 'inline-block'}),

        html.Div([
            dcc.Dropdown(
            id= "year",
            options=[
            {'label': '1990', 'value': '1990'},
            {'label': '2000', 'value': '2000'},
            {'label': '2010', 'value': '2010'},
            {'label': '2020', 'value': '2020'}
        ],
        value='1990'),

],          style = {'width': '48%', 'float': 'right', 'display': 'inline-block'}),
        dcc.Graph(id='graph')
])

@app.callback(Output('graph', 'figure'),
              [Input('selected_statistic', 'value'),
               Input('year', 'value')])

def update_figure(selected_statistic,year):
    df2 = df[df["statistic"] == selected_statistic]
    fig = px.bar(df2[df2],
                x="city",
                y="value",
                color="city")
    return fig

if __name__ == '__main__':
    app.run_server()
j0pj023g

j0pj023g1#

我觉得你想要这样的东西:

df2 = df[df["statistic"].eq(selected_statistic) && df["year"].eq(year)]

假设您的df有一个year列。

相关问题