![](/img/trans.png)
[英]Plotly Dash dcc.Interval fails after a while: Callback error updating graph.figure
[英]Python: Plotly & Dash | Real time graph dcc.Interval, function called twice... bug?
在這里的第一篇文章,我希望你能幫助我解決這個奇怪的情況......我正在使用 plotly (dcc.Interval) 進行一些實時繪圖,我只是發現我用來獲取數據的函數之一被調用了兩次在執行期間。 這很奇怪,因為我只是調用了這個 function 一次,它真的弄亂了我的代碼:
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)
# THIS IS AN EXAMPLE OF A FUNCTION
def formula():
er = 'text'
return(er)
# CALLING THE FORMULA, JUST PRINTING THE TEXT
print(formula())
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))
data = plotly.graph_objs.Scatter(
x=list(X),
y=list(Y),
name='Scatter',
mode= 'lines'
)
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)
程序的output為:
C:\Users\s3853339\Miniconda3\envs\spec\python.exe C:/pythonprojects/spectrometer/test_plotly.py
text # FUNCTION HAS BEEN CALLED ONCE
Dash is running on http://127.0.0.1:8080/
* Serving Flask app 'test_plotly' (lazy loading)
* Environment: production
WARNING: This is a development server. Do not use it in a production deployment.
Use a production WSGI server instead.
* Debug mode: on
text # SECOND CALLING OF THE FUNCTION... WHAT HAPPENED HERE???
代碼運行兩次,因為您處於調試模式。 設置debug=False
,它應該只執行一次。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.