说我有一个for循环,其中每次迭代只花一小会儿,我希望在每次迭代中更新一个破折号:
for i, (idx, row) in enumerate(df.iterrows()):
update vector
app.callback(Output('my-plot', 'figure'), [Input('vector')])
我已经在线浏览过,但是看来似乎没有破折号的方法。我唯一的解决方案是使用Interval
组件,然后回调函数检索某些pickle文件或通过在计算机上运行另一个内核而更新的内容,但是必须有更好的方法。
注意:这个想法是让一个图形每次更新1个数据点,然后通过Dash将其附加到图形上。请让我知道你会怎么做。它知道我可以只使用普通的matplotlib.pyplot,但我想要一个美观的应用程序而不是matplotlib。
答案 0 :(得分:0)
使用Dash,如果要更新组件,则需要使用回调。如您所说,Dash的方法是使用Interval
组件作为回调的触发器。
回调函数可以读入文件并检查文件中的数据点总数,并且可能使用所显示数据的State
值,以便可以计算当前显示的数据点数。每次迭代,该函数都会从文件到输出再增加一个点,直到达到文件中数据点的总数。如果您有一个文件,在Dash应用程序的运行过程中其他程序正在更改,则回调函数将能够在每次运行时读入更新的文件。