要在1个时间间隔内用相同的数据更新2个图表

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

我想在2个不同的折线图中显示2条信息,分别是每秒的风量和总的风量。空气量是直到当前气流的总和。

下面是我的摘录。

...

dcc.Interval(
    id='interval-component',
    interval=PERIOD,  # in milliseconds
    n_intervals=0
)

...

@app.callback(
    Output(VOLUME_GRAPH, 'figure'),
    [Input('interval-component', 'n_intervals')]
)
def update_volume_graph(n):
   f_per_sec = read_from_serial()

   # add with prev volume

...

@app.callback(
    Output(FLOW_GRAPH, 'figure'),
    [Input('interval-component', 'n_intervals')]
)
def update_flow_graph(n):
    f_per_sec = read_from_serial()

...

即使两个注册的回调使用相同的component-id(id ='interval-component'),但实际上有2个间隔组件在不同的时间间隔进行采样(在2t内变为2个采样值)

这些是我的打印屏幕:

update_flow1 read_from_serial() y:14
update_volume1 read_from_serial() y:9

如何在更新2条线图或2种不同的图表(例如line-chartgauge chart)中以1秒的间隔显示1个采样值。

预先感谢。

python linechart plotly-dash
1个回答
0
投票

基于此callbacks postmultiple output post

我得到一个结论,该结论从系列中读取一次,然后更新2个图表。回调可能返回2个输出。

这是代码段代码:

@app.callback(
    [Output(FLOW_GRAPH, 'figure'), Output('my-gauge', 'value')],
    [Input('interval-component', 'n_intervals')]
)
def sampling_from_serial(n):
   ...


   return create_figure(data), flow_per_sec

返回值必须与上面的输出标记中声明的长度(和类型)相同。此功能仅在

中可用

dash> 0.39.0

希望有帮助,

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