回调函数不升级图形

时间:2019-06-05 08:10:38

标签: python pandas plotly-dash

我有一个数据集,我想绘制一些图形。我创建了一个绘图图,该图可以使用回调函数正确加载,在其中可以选择需要数据的年份。数据集已正确加载,并且没有丢失或错误。但是,每当我尝试更改数据时,都不会发生任何事情。

我的数据集具有这样的列 codass 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 :(得分:0)

前几天我遇到了这个问题。我不确定是否会解决此问题,因为我没有用于测试的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')