Функция обратного вызова не обновляет графики - PullRequest
0 голосов
/ 05 июня 2019

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

В моем наборе данных есть такие столбцы, как этот кодас Q NF CURS 240011 1 7 2010 240011 2 5 2010 240012 1 2 2011

Я попытался начать с пустого графика, но ничего не произошло.Данные в порядке, потому что исходный график загружается правильно, он находится на процедуре обновления.

import pandas as pd
import numpy as np
import dash
import dash_core_components as dcc
from dash.dependencies import Input, Output
import dash_html_components as html
import plotly.graph_objs as go


FaseIni = pd.read_csv('/Users/Jordi/Documents/Universitat/TFG/tfg/Spyder path/qfaseini18.csv',sep=';',encoding='utf-8')

Q=[1,2]

anys=FaseIni['CURS'].unique()

pv = FaseIni.pivot_table( index=['CODASS'], columns=['Q'], values=['NF'], fill_value=0)

trace1=go.Bar(x=pv.index, y =pv[('NF',1)],name='q1')
trace2=go.Bar(x=pv.index, y =pv[('NF',2)],name='q2')

app = dash.Dash()

app.layout = html.Div([

    html.Div([

        dcc.Dropdown(
            id='Anys',
            options= [{'label':'2010' , 'value':2010 },{'label':'2011' , 'value':2011 }],
            value =2010,

                )

        ]),

    html.Div([
        dcc.Graph(
            id='notes',
            figure={
                'data':[trace1,trace2]
                        }
)
        ])

])





@app.callback(
    Output('notes','figure'),
    [Input('Anys','value')])

def update_graph(Anys):
    pv2 = FaseIni.loc[FaseIni['CURS'] == Anys]
    pv2 = pv2.pivot_table( index=['CODASS'], columns=['Q'], values=['NF'], 
    fill_value=0)
    trace3=go.Bar(x=pv2.index, y =pv2[('Anys',1)],name='q1')
    trace4=go.Bar(x=pv2.index, y =pv2[('Anys',2)],name='q2')
    return {'data':[trace3,trace4]}

Исходный график загружается правильно, он просто не обновляется

1 Ответ

0 голосов
/ 07 июня 2019

У меня была эта проблема на днях. Я не уверен, что это поможет устранить проблему, потому что у меня нет файла csv для его проверки, но попробуйте перейти к следующему:

trace3 = go.Bar (x = pv2.index, y = pv2 [( value , 1)], name = 'q1')

trace4 = go.Bar (x = pv2.index, y = pv2 [( value , 2)], name = 'q2')

...