ich habe Code aus einem Tutorial übernommen, in welchem es um eine Website mit einem Graphen geht, welcher sich alle 10 Sekunden updatet. Noch werden dazu alle 10 Sekunden zufällige Werte generiert und in dem Graphen hinzugefügt. Das funktioniert auch sehr gut, rufe ich die Website jetzt aber doppelt auf(also zwei Tabs mit dieser Seite), werden auch doppelt so viele Werte generiert bzw. es finden doppelt so viele Updates statt. Wie kann man den Code anpassen, damit unabhängig von den Websiteaufrufen alle 10 Sekunden ein Wert eingefügt wird?
Hier einmal der Code:
Code: Alles auswählen
import dash
from dash.dependencies import Output, Input
from dash import dcc
from dash import html
import plotly
import random
import plotly.graph_objs as go
from collections import deque
from datetime import datetime
X = deque(maxlen=20)
X.append(1)
Y = deque(maxlen=20)
Y.append(1)
app = dash.Dash(__name__)
app.layout = html.Div(
[
html.H1('Sensordaten'),
dcc.Graph(id='live-graph', animate=True),
dcc.Interval(
id='interval-component',
interval=10*1000
),
]
)
@app.callback(Output('live-graph', 'figure'),
[Input('interval-component', 'n_intervals')])
def update_graph_scatter(input_data):
X.append(X[-1]+1)
Y.append(Y[-1]+Y[-1]*random.uniform(-0.1,0.1))
data = plotly.graph_objs.Scatter(
x=list(X),
y=list(Y),
name='Scatter',
mode= 'lines+markers'
)
return {'data': [data],'layout' : go.Layout(xaxis=dict(range=[min(X),max(X)]),
yaxis=dict(range=[min(Y),max(Y)]),)}
if __name__ == '__main__':
app.run(host='127.0.0.1', port=8050 ,debug=True)