Python 破折号/绘图:带有动画图形的实时图形,在同一图形上添加其他线

Python 破折号/绘图:带有动画图形的实时图形,在同一图形上添加其他线,python,plotly-dash,Python,Plotly Dash,只是想问一下,通过动画,如何使用实时图形向同一个图形添加更多线。我成功地运行了这个脚本,但是为了添加另一行,我想我需要创建一个图形,但是,update_graph函数的返回不允许我提到“figure”变量,因此我可以向同一个图形添加更多的行 你知道如何修改这段代码吗 import dash from dash.dependencies import Output, Input import dash_core_components as dcc import dash_html_componen

只是想问一下,通过动画,如何使用实时图形向同一个图形添加更多线。我成功地运行了这个脚本,但是为了添加另一行,我想我需要创建一个图形,但是,update_graph函数的返回不允许我提到“figure”变量,因此我可以向同一个图形添加更多的行

你知道如何修改这段代码吗

import dash
from dash.dependencies import Output, Input
import dash_core_components as dcc
import dash_html_components as html
import plotly
import plotly.graph_objs as go

import random

X = []; X.append(0)
Y = []; Y.append(1)

app = dash.Dash(__name__)

app.layout = html.Div(children=[
    html.H1(children='Ejemplo grafica'),
    dcc.Graph(id='live-graph', animate=True),
    dcc.Interval(
        id='graph-update',
        interval=1000
        ),
    ]
)

@app.callback(Output('live-graph', 'figure'),
              [Input('graph-update', 'n_intervals')])

def update_graph(input_data):
    X.append(X[-1]+1)
    Y.append(Y[-1]+Y[-1]*random.uniform(-0.1,0.1))

# Here is where I define my graph...
    data = go.Scatter(
            x=list(X),
            y=list(Y),
            name='Scatter',
            mode= 'lines'
            )

# The return part only allows me to put the "data" variable as go.Scatter
    return {'data' : [data],
            'layout' : go.Layout(
                xaxis=dict(range=[X[0],X[-1]]),
                yaxis=dict(range=[min(Y)-0.1,max(Y)+0.1]),)
            }

if __name__ == '__main__':
    app.run_server(host='127.0.0.1', port=8080 ,debug=True)
我能够创建一个“新变量”来将其添加到返回参数中,但是我认为必须有另一种“不那么麻烦的方法”来实现这一点,特别是因为我需要在类似的图上添加一些垂直线,而这段代码看起来非常麻烦

 data1 = go.Scatter(
        x=list(x),
        y=list(y_1),
        name='Sensor 1',
        mode= 'lines'
    )

    data1a = go.Scatter(
        x=list(x),
        y=list(y_2),
        name='Sensor 2',
        mode= 'lines'
    )

# ------ Some more code here --------

return {'data' : [data1, data1a],    # Adding the "new line in same graph"
            'layout' : go.Layout(
                xaxis=dict(range=[X[0],X[-1]]),
                yaxis=dict(range=[min(Y)-0.1,max(Y)+0.1]),)
            }
多谢各位