如果元素中的值发生更改,则执行回调

问题描述 投票:0回答:1

假设我在几个因变量(d1d2d3)上运行线性回归来预测数据流上的自变量(id)。

app = dash.Dash()

app.layout = html.Div([
    dcc.Interval(id='data-stream', interval=1000, n_intervals=0),
    html.Div(id='count'),
    html.Div(id='betas'),
])

@app.callback(
    Output('count', 'children'),
    [Input('data-stream', 'n_intervals')]
)
def get_count(data):
    df = pd.read_csv(*some url that updates and returns a csv*)
    count = len(df['id'])
    return html.H2(f'The count is {count}')

@app.callback(
    Output('betas', 'children'),
    [*what goes in here?*]
)
def run_regression(*arg_inputs):
    # Run Regression here that outputs a table of betas

每当计数改变值,即html.Div(id='count')而不是依赖于Interval时,我如何进行回调(运行回归)?

我查看了Event的文档,甚至尝试将Input('count', 'children')作为inputs函数的回调装饰器的run_regression参数,并且它仍然流式传输而不是在观察计数变化时重新运行回归。

python plotly-dash
1个回答
0
投票

你的输入应该是count,你可以用它来做那样的事情

@app.callback(
    Output('betas', 'children'),
    Input('count','value')
)
def run_regression(count_value):
    # Run Regression here that outputs a table of betas

在这里你的输入就像你提到的计数长度所以你可以使用它来做你想要的(确保你可以在你的函数run_regression中添加一个打印来打印count_value来看看它是什么样的)如果你需要更多的帮助你应该解释一下你的run_regression函数应该做什么;)

© www.soinside.com 2019 - 2024. All rights reserved.