如何解决为什么当我在下拉列表中选择它时我的图表没有改变?
为什么我的图表在下拉菜单中选择时没有改变?
这是我的代码:
# 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 举报,一经查实,本站将立刻删除。