Идея реализации состоит в том, чтобы выбрать данные из раскрывающегося списка, вычислить некоторые выходные данные с помощью функции и затем построить график результатов.
Есть 2 списка, которые должны быть альтернативными входами, раскрывающимся списком и общим преимуществом функция, которая вычисляет разницу между доходами и расходами.
У Mi больше всего сомнений в том, как связать фрейм данных с раскрывающимся списком, а затем вычислить
import numpy as np
import pandas as pd
import plotly.graph_objects as go
from plotly.subplots import make_subplots
import dash
import dash_core_components as dcc
import dash_html_components as html
from dash.dependencies import Input, Output, State
C1 = [2092,1845,4102,2692,2625,5258]
C2 = [2092,1845,4102,2692,2625,5258]
df_costs = pd.DataFrame(list(zip(C1, C2)),
columns=['GU', 'LA'])
sales = [1092,2845,4602,5692,9425,15258]
df_sales = pd.DataFrame(list(zip(sales)),
columns=['Sales'])
def create_simulation(df_sales, df_costs, i):
df_ratios["date"] = np.arange(6) + 1
df["Total Benefit"] = df_costs[i]
fig = make_subplots(rows=1, cols=1,
specs=[[{"secondary_y": True}]]
)
fig.add_trace(
go.Scatter(
x=df["date"],
y=df["Total Benefit"],
mode='lines+markers',
name='Revenue',
marker=dict(
color="Blue",
size=4,
colorscale='Blues',
showscale=False
)
)
)
dcc.Dropdown(
id = 'costs',
options=[
{'label': 'Guggenheim', 'value': 'GU'},
{'label': 'Latin America + GU', 'value': 'LA'},
],
value=['GU', 'LA'],
# labelStyle={'display': 'inline-block'}
),
dcc.Graph(figure=fig,id='figure1')
app = dash.Dash()
app.layout = serve_layout
@app.callback(
[Output(component_id='figure1', component_property='figure'),],
[Input(component_id='costs', component_property='value')]
)
def update_investment(costs):
print('update-investment')
monthly_costs = costs
fig = create_simulation(df_sales, df_costs, i)
return ('You\'ve entered "{}" and "{}"'.format(monthly_costs), fig)
def update_investment(costs):
print('update-investment')
monthly_costs = costs
fig = create_simulation(df_sales, df_costs, i)
return ('You\'ve entered "{}" and "{}"'.format(imonthly_costs), fig)