我想在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-chart和gauge chart)中以1秒的间隔显示1个采样值。
预先感谢。
基于此callbacks post和multiple 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
希望有帮助,