为什么当我在下拉列表中选择它时我的图表没有改变?

问题描述

为什么我的图表在下拉菜单中选择时没有改变?

这是我的代码

# Step 1. Launch the application
app = dash.Dash()

# Step 2. Import the dataset
df = pd.read_excel("./billingdata.xlsx")

# Step 3. Create a plotly figure


trace_1 = px.Scatter(
    x=df.OVERAGE_ACCOUNTS_PER_CYCLE,y=df.CORP_ID,name="BILLING_CYCLE_START_DATE",# marker=dict(color='#ffcdd2'))
    line=dict(width=1,color="rgb(229,151,50)"),)

layout = px.Layout(title="Billing cycle",hovermode="closest")
fig = px.figure(data=[trace_1],layout=layout)

# Step 4. Create a Dash layout
features = df.columns[1]
opts = [{"label": i,"value": i} for i in sorted(df.BILLING_CYCLE_START_DATE)]
app.layout = html.Div(
    [
        # adding a plot
        dcc.Graph(id="plot",figure=fig),# dropdown
        html.P(
            [
                html.Label("BILLING_CYCLE_START_DATE"),dcc.Dropdown(id="opt",options=opts,value=opts[0]["value"]),],style={
                "width": "400px","fontSize": "20px","padding-left": "100px","display": "inline-block",},),]
)

# Step 5. Add callback functions
@app.callback(
    dash.dependencies.Output("plot","figure"),[dash.dependencies.Input("opt","value")],)
def update_figure(X):

    dff = df[df.BILLING_CYCLE_START_DATE == X]

    trace_2 = px.Scatter(
        x=dff.OVERAGE_ACCOUNTS_PER_CYCLE,y=dff.CORP_ID,name=X,line=dict(width=2,color="rgb(106,181,135)"),)
    fig = px.figure(data=[trace_1,trace_2],layout=layout)

    return fig.update_traces(mode="markers+lines")


# Step 6. Add the server clause
if __name__ == "__main__":
    app.run_server(debug=True)

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...