Python (3.x) で plotly Dash (0.18.3) でライブ更新を使用しようとしていますが、プロットを頻繁に更新する必要はありません (1 日に 1 回か 2 回必要です)。
これまでに次のことを行いました。
import dash
import pandas as pd
import plotly.graph_objs as go
import dash.dependencies as ddp
import dash_core_components as dcc
import dash_html_components as html
def plot_figure(data):
layout = dict(
title="Figure w/ plotly",
)
fig = dict(data=data, layout=layout)
return fig
def serve_layout():
return html.Div(children=[
html.Div([
html.H1("Plotly test with Live update",
style={"font-family": "Helvetica",
"border-bottom": "1px #000000 solid"}),
], className='banner'),
html.Div([dcc.Graph(id='plot')],),
dcc.Interval(id='live-update', interval=interval),
],)
second = 1000
minute = 60
hour = 60
day = 24
interval = 1/2*day*hour*minute*second
app = dash.Dash()
app.layout = serve_layout
@app.callback(
ddp.Output('plot', 'figure'),
[],
[],
[ddp.Event('live-update', 'interval')])
def gen_plot():
ind = ['a', 'b', 'c', 'd']
df = pd.DataFrame({'one' : pd.Series([4., 3., 2., 1.], index=ind),
'two' : pd.Series([1., 2., 3., 4.], index=ind)})
trace = [go.Scatter(x=df.index, y=df['one'])]
fig = plot_figure(trace)
return fig
if __name__ == '__main__':
app.run_server(debug=True)
問題は、最初は何も表示されず、 の後にのみ更新さinterval
れるため、半日後です。ページの読み込み時に更新されるように、 Dash のドキュメントserve_layout
に従って関数を追加しましたが、効果がないようです。
ページが最初にアクセスされ、その後毎回更新されるときに最初の更新を行うにはどうすればよいinterval
ですか?