使用时间下拉列表更新图形数据的虚线绘图

Dash ploty updating figures data using a time dropdown

提问人:Usama_13 提问时间:9/6/2023 更新时间:9/6/2023 访问量:14

问:

我正在 Dash 中构建一个简单的仪表板,其中有两个回调函数,一个用于决定显示哪些数字的清单,另一个用于选择我从远程 postgres 服务器读取的数据的时间范围的下拉列表。 所以问题是我似乎找不到连接两个回调函数的方法,因为一个选择范围,另一个使用此数据范围来绘制数字 ** 回调 1:**

@app.callback(
    Output('filtered-data', 'data'),
    Input('range_selector','value'),
)

def update_range_data(selected_range,selected_values):
    global df
    global filtered_df
    curtime = df['time'].iloc[-1]
    selected_tr = curtime - timedelta(hours= selected_range)
    filtered_df = df[df['time']>= selected_tr]   
    return filtered_df.to_json(date_format='iso', orient='split') 

回调 2:

@app.callback(
    Output('example-graph', 'figure'),
    Input('cl' , 'value'),
    State('filtered-data', 'data'), 
)

def update_gauge(selected_values,filtered_data_json):
    if filtered_data_json is None:
        raise dash.exceptions.PreventUpdate
    filtered_df = pd.read_json(filtered_data_json)  
    num_gauges = len(selected_values)
    vertical_gap = 50

    fig = go.Figure()

    for i, value in enumerate(selected_values, start=1):
        domain = {'x': [0, 1], 'y': [(i - 1) / num_gauges, i / num_gauges]}  # Adjust the positioning as needed
        
        gauge = go.Indicator(
            mode="gauge+number",
            value=df[value].iloc[0],  # You may need to adjust this value based on your data
            title={'text': value},
            gauge={'axis': {'range': [None, 100]}, 'bar': {'color': "red"}},
            domain=domain,
        )

        fig.add_trace(gauge)

    fig.update_layout(
        showlegend=False,
        height=(200 + vertical_gap) * num_gauges - vertical_gap,  # Adjust the height as needed
        paper_bgcolor="#023e8a",
        font_color="white",
    )
    return fig


我尝试使用状态将数据存储为缓冲区,然后从该缓冲区读取数据,但这没有奏效

python 回调 plotly-dash 仪表板

评论


答: 暂无答案