【问题标题】:To update 2 charts in 1 time interval with same data用相同的数据在 1 个时间间隔内更新 2 个图表
【发布时间】:2020-04-26 10:00:45
【问题描述】:

我想在 2 个不同的折线图中显示 2 个信息,即气流/秒和总风量/秒。 风量是前一个气流直到当前的总和。

下面是我的sn-p。

...

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()

...

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

这些是我的打印屏幕:

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

如何在更新 2 个折线图或 2 个不同的图表(例如 折线图仪表图)内以 1 秒的间隔显示 1 个采样值。

提前致谢。

【问题讨论】:

    标签: python linechart plotly-dash


    【解决方案1】:

    基于此callbacks postmultiple output post

    我得到一个从串行读取一次并随后更新 2 个图表的结论。回调可能会返回 2 个输出。

    这是sn-p代码:

    @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
    

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

    中可用

    破折号>0.39.0

    希望有帮助,

    【讨论】:

      猜你喜欢
      • 2018-12-13
      • 2016-09-06
      • 1970-01-01
      • 1970-01-01
      • 2012-06-04
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多