for 循环中的 plotly dash 回调

plotly dash callback in a for loop

假设我有一个 for 循环,其中每次迭代只需要很短的时间,我希望在每次迭代中更新破折号:

for i, (idx, row) in enumerate(df.iterrows()): update vector app.callback(Output('my-plot', 'figure'), [Input('vector')])

我在网上浏览过,但似乎没有办法在 dash 中执行此操作。我唯一的解决方案是使用 Interval 组件,然后回调函数检索一些 pickle 文件或由 运行 我计算机上的另一个内核更新的东西,但必须有更好的方法。

注意:我们的想法是让图表一次更新 1 个数据点,然后通过 Dash 将其附加到图表中。请让我知道你会怎么做。它知道我可以只使用普通的 matplotlib.pyplot 但我想要一个漂亮的应用程序而不是 matplotlib。

使用Dash,如果你想更新一个组件,那么你需要使用回调。正如您所说,Dash 的方法是使用 Interval 组件作为回调的触发器。

回调函数可以读取文件并检查其中的数据点总数,并且可能使用正在显示的数据的 State 值,因此它可以计算当前显示的数据点数量.每次迭代,该函数都会将文件中的一个点添加到输出中,直到达到文件中数据点的总数。如果您有一个文件在 Dash 应用程序运行期间其他程序正在更改,则回调函数将能够在每次运行时读取更新的文件。