Graph_Update с двумя раскрывающимися списками с множественным выбором с использованием данных Excel и тире Python - PullRequest
1 голос
/ 01 июля 2019

Я пытаюсь обновить график в тире, используя Excel с данными. У меня есть 2 выпадающих и документ Excel с различными листами для каждого выпадающего. Мне пока не удавалось выбрать значение из выпадающего списка и записать эти данные в таблицу (у меня есть таблица перед графиком) и вывести значения в график.

импорт тире import dash_auth импортировать dash_core_components как dcc импортировать dash_html_components как html импортировать участок импортировать dash_daq как daq импорт ОС импортировать случайный импорт панд в виде pd импортировать plotly.graph_objs as go из коллекции импорта deque импорт psycopg2 из dash.dependencies импорт Вывод, Ввод

DB_NAME = "LicentaTest"
DB_USER = "postgres"
DB_PASS = "admin"
DB_HOST = "localhost"
DB_PORT = "5433"


VALID_USERNAME_PASSWORD_PAIRS = [
['admin1', 'admin']
]


external_stylesheets = ['https://codepen.io/chriddyp/pen/bWLwgP.css']

app = dash.Dash(_name_, external_stylesheets=external_stylesheets)
auth = dash_auth.BasicAuth(
    app,
    VALID_USERNAME_PASSWORD_PAIRS
)

df = pd.read_excel('UploadData.xlsx', sheet_name='Total')


def generate_table(dataframe, max_rows=13):
    return html.Table(
        # Header
        [html.Tr([html.Th(col) for col in dataframe.columns])] +

         # Body
        [html.Tr([
            html.Td(dataframe.iloc[i][col]) for col in dataframe.columns
        ]) for i in range(min(len(dataframe), max_rows))]
    )

external_stylesheets = ['https://codepen.io/chriddyp/pen/bWLwgP.css']

app = dash.Dash(_name_, external_stylesheets=external_stylesheets)

app.layout = html.Div([
    html.H1('Electrica SDEE Transilvania SUD SA'),
    html.H4('Select the branch:'),
    dcc.Dropdown(
        id='dropdown',
        options=[{'label': i, 'value': i} for i in ['ALBA', 'BRASOV', 
 'COVASNA', 'HARGHITA', 'MURES', 'SIBIU', 'TOTAL']],
        value='',
        placeholder = 'Select branch'
        #multi = True
     ),
     html.H4('Select the year:'),
         dcc.Dropdown(
         id='dropdown1',
         options=[{'label': i, 'value': i} for i in ['2012', '2013',     
'2014', '2015', '2016', '2017', '2018', 'ALL']],
         value='',
         placeholder = 'Select year'
        ),

    html.Br(),
    html.Button('OK', id='submit-form'),
    html.Br(),

    html.Div(children=[
    html.H4(children='Own Technological Consumption'),
    generate_table(df),
    ]),

    html.Br(),

    html.Br(),
    html.Br(),

    dcc.Graph(id='graph')],

     className='container')

@app.callback(
    dash.dependencies.Output('graph', 'figure'),
   [dash.dependencies.Input('dropdown', 'value')])

def update_graph1(dropdown_value):

    df = pd.read_excel('UploadData.xlsx', sheet_name='Total')


    X1 = df.Date.values
    Y1 = df.CPT.values

    data = plotly.graph_objs.Scatter(
        x=X1,
        y=Y1,
        name='Graph',
        mode='lines+markers'
    )

    return {
         'data': [data], 'layout' : go.Layout(xaxis=dict(range[min(X1),max(X1)]),
        yaxis=dict(range=[min(Y1),max(Y1)]),
       )
    }

if _name_ == '_main_':
    app.run_server(debug=True)

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

...