Сюжет: создать DataFrame раскрывающейся формы и применить к функции (python) - PullRequest
0 голосов
/ 29 мая 2020

Идея реализации состоит в том, чтобы выбрать данные из раскрывающегося списка, вычислить некоторые выходные данные с помощью функции и затем построить график результатов.

Есть 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)
...