基于扩展数据帧的dash新闻实时通知

2024-07-08 11:02:42 发布

您现在位置:Python中文网/ 问答频道 /正文

我是新来的冲刺和阴谋

我正在尝试做一个实时仪表板,所以我可以流新闻通知每2或3秒

为此,我想有一个表,其中只有一行开始。然后,一旦下一条新闻流,我会得到另一行,等等(表必须最多10行,所以可能我想使用一些虚线表虚拟化,以防用户需要访问一些旧数据)

目前,我只是想制作一个数据帧,每秒添加一个带有随机字符串的raw(可能是2或3秒)

我想将此表与其他实时绘图集成到仪表板中,如下面的代码示例所示

我做了这个小仪表板,上面是动态图,下面是表格

我尝试在回调中使用data.append({'lib':'C','qty1':'E})添加新的raw,但没有成功


import dash
import dash_core_components as dcc
import dash_html_components as html
from dash.dependencies import Input, Output, State
from dash.exceptions import PreventUpdate
from numpy.random import randint
import time

external_stylesheets = ['https://codepen.io/chriddyp/pen/bWLwgP.css']
app = dash.Dash(__name__, external_stylesheets=external_stylesheets)

columns=[{"lib": "A", "qty1": "A"},{"lib": "B", "qty1": "B"}]
df = pd.DataFrame(columns)


app.layout = html.Div(children=[
    html.H1(children='Hello World!', id='first'),
    dcc.Interval(id='timer', interval=1000),
    html.Div(id='dummy'),
    dcc.Graph(
            id='example-graph',
            figure={
                'data': [
                    {'x': [1, 2, 3],
                     'y': [4, 1, 2],
                     'type': 'bar', 'name': 'SF'},
                    {'x': [1, 2, 3],
                     'y': [2, 4, 5],
                     'type': 'bar', 'name': 'Montréal'},
                ],
                'layout': {
                    'title': 'Dash Data Visualization'
                }
            }
        ),
    dash_table.DataTable(
                id='table-editing-simple',
                columns=[
                    {"lib": "A", "qty1": "A"},
                    {"lib": "B", "qty1": "B"}],
                data = df.to_dict("rows")
                ),
    html.Div(
            html.H5(
                id='table-action-outputs',
                children='',
                style={'textAlign': 'left'}),
            style={'width': '100%', 'display': 'inline-block', 'float': 'left'},
            )
])

@app.callback(output=Output('example-graph', 'figure'),
              inputs=[Input('timer', 'n_intervals')])
def update_graph(n_clicks):
    return {
                'data': [
                    {'x': [1, 2, 3],
                     'y': [random.randint(0, 10) for x in range(3)],
                     'type': 'bar', 'name': 'SF'},
                    {'x': [1, 2, 3],
                     'y': [random.randint(0, 10) for x in range(3)],
                     'type': 'bar', 'name': 'Montréal'},
                ],
                'layout': {
                    'title': 'Dash Data Visualization'
                }
            }

@app.callback(Output('table-action-outputs', 'children'),
              [Input('table-editing-simple', 'data'),
              Input('timer', 'n_intervals')])

def update_database(n_clicks):
    data.append({'lib': 'C', 'qty1': 'E'})

if __name__ == '__main__':
    app.run_server(debug=True)

首先,我看不到表中的值。我不知道为什么它不出现

我尝试在回调中使用data.append({'lib':'C','qty1':'E})添加新的raw,但没有成功


Tags: nameimportidappinputdatalibhtml

热门问题