ユースケース:Web でグラフや表を簡単に表示したい。そして、ユーザ側で操作ができるようにしたい。
サイト内の関連ページ
参考Webページ
※ 以下、Windowsでの手順で説明する.Ubuntu等でも同様の手順になる.
Python パッケージをインストールする
ユースケース:Web でグラフや表を簡単に表示したい。そして、ユーザ側で操作ができるようにしたい。
サイト内の関連ページ
参考Webページ
※ 以下、Windowsでの手順で説明する.Ubuntu等でも同様の手順になる.
Python パッケージをインストールする
https://dash.plot.ly/installation の記述による
「==0.39.0」, 「==0.1.0」のところは、 https://dash.plot.ly/installation で確認すること。
python -m pip install dash==0.39.0 python -m pip install dash-daq==0.1.0
sudo python3 -m pip install dash==0.39.0 sudo python3 -m pip install dash-daq==0.1.0
# -*- coding: utf-8 -*-
import dash
import dash_core_components as dcc
import dash_html_components as html
external_stylesheets = ['https://codepen.io/chriddyp/pen/bWLwgP.css']
app = dash.Dash(__name__, external_stylesheets=external_stylesheets)
app.layout = html.Div(children=[
html.H1(children='Hello Dash'),
html.Div(children='''
Dash: A web application framework for Python.
'''),
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': u'Montral'},
],
'layout': {
'title': 'Dash Data Visualization'
}
}
)
])
if __name__ == '__main__': app.run_server(debug=True)
※ Python プログラムを動かすために, Windows では,「python」コマンドを使う. Ubuntu では「python3」コマンドを使う.
開発環境や Python コンソール(Jupyter Qt Console,spyder,PyCharm,PyScripter など)も便利である.
python hoge.py
python3 hoge.py
# -*- coding: utf-8 -*-
import dash
import dash_table
import dash_core_components as dcc
import dash_html_components as html
import pandas as pd
external_stylesheets = ['https://codepen.io/chriddyp/pen/bWLwgP.css']
app = dash.Dash(__name__, external_stylesheets=external_stylesheets)
L = [[1, 2, 3], [4, 1, 2]]
X = pd.DataFrame(L)
app.layout = html.Div(children=[
html.H1(children='Hello Dash'),
html.Div(children='''
Dash: A web application framework for Python.
'''),
dash_table.DataTable(
id='table',
columns=[ {"name": i, "id": i} for i in X.columns],
data=X.to_dict("rows")
)
])
if __name__ == '__main__': app.run_server(debug=True)
注意点
プログラムのポイント
# -*- coding: utf-8 -*-
import dash
import dash_table
import dash_core_components as dcc
import dash_html_components as html
import pandas as pd
import time
import threading
external_stylesheets = ['https://codepen.io/chriddyp/pen/bWLwgP.css']
app = dash.Dash(__name__, external_stylesheets=external_stylesheets)
L = [[1, 2, 3], [4, 1, 2]]
X = pd.DataFrame(L)
def do_layout():
global app
app.layout = html.Div(children=[
html.H1(children='Hello Dash'),
html.Div(children='''
Dash: A web application framework for Python.
'''),
dash_table.DataTable(
id='table',
columns=[ {"name": i, "id": i} for i in X.columns],
data=X.to_dict("rows")
)
])
import time
import threading
# 定期的に繰り返すスレッド
def worker():
global X
do_layout()
print(time.gmtime())
X[0][0] = X[0][0] + 1
print(X[0][0])
# 動作試験のため、わざと 8 秒待つようにしている
time.sleep(8)
def mainloop():
# 5秒間隔
time_interval = 5
now = time.time()
while True:
t = threading.Thread(target=worker)
t.start()
t.join()
wait_time = time_interval - ( (time.time() - now) % time_interval )
print(wait_time)
time.sleep(wait_time)
if __name__ == '__main__': t0 = threading.Thread(target=mainloop)
t0.start()
# マルチスレッドにしたい。debug は False で. (debug=True に変えたときの動作は確認していません)
app.run_server(debug=False)
本サイトは金子邦彦研究室のWebページです.サイトマップは,サイトマップのページをご覧下さい. 本サイト内の検索は,サイト内検索のページをご利用下さい.
問い合わせ先: 金子邦彦(かねこ くにひこ) ![]()
conda install simplejson flask plotly
https://dash.plot.ly/installation の記述による
「==0.39.0」, 「==0.1.0」のところは、 https://dash.plot.ly/installation で確認すること。
pip install dash==0.39.0 pip install dash-daq==0.1.0
sudo python3 -m pip install dash==0.39.0 sudo python3 -m pip install dash-daq==0.1.0
# -*- coding: utf-8 -*-
import dash
import dash_core_components as dcc
import dash_html_components as html
external_stylesheets = ['https://codepen.io/chriddyp/pen/bWLwgP.css']
app = dash.Dash(__name__, external_stylesheets=external_stylesheets)
app.layout = html.Div(children=[
html.H1(children='Hello Dash'),
html.Div(children='''
Dash: A web application framework for Python.
'''),
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': u'Montral'},
],
'layout': {
'title': 'Dash Data Visualization'
}
}
)
])
if __name__ == '__main__': app.run_server(debug=True)
※ Python プログラムを動かすために, Windows では,「python」コマンドを使う. Ubuntu では「python3」コマンドを使う.
開発環境や Python コンソール(Jupyter Qt Console,spyder,PyCharm,PyScripter など)も便利である.
python hoge.py
python3 hoge.py
# -*- coding: utf-8 -*-
import dash
import dash_table
import dash_core_components as dcc
import dash_html_components as html
import pandas as pd
external_stylesheets = ['https://codepen.io/chriddyp/pen/bWLwgP.css']
app = dash.Dash(__name__, external_stylesheets=external_stylesheets)
L = [[1, 2, 3], [4, 1, 2]]
X = pd.DataFrame(L)
app.layout = html.Div(children=[
html.H1(children='Hello Dash'),
html.Div(children='''
Dash: A web application framework for Python.
'''),
dash_table.DataTable(
id='table',
columns=[ {"name": i, "id": i} for i in X.columns],
data=X.to_dict("rows")
)
])
if __name__ == '__main__': app.run_server(debug=True)
注意点
プログラムのポイント
# -*- coding: utf-8 -*-
import dash
import dash_table
import dash_core_components as dcc
import dash_html_components as html
import pandas as pd
import time
import threading
external_stylesheets = ['https://codepen.io/chriddyp/pen/bWLwgP.css']
app = dash.Dash(__name__, external_stylesheets=external_stylesheets)
L = [[1, 2, 3], [4, 1, 2]]
X = pd.DataFrame(L)
def do_layout():
global app
app.layout = html.Div(children=[
html.H1(children='Hello Dash'),
html.Div(children='''
Dash: A web application framework for Python.
'''),
dash_table.DataTable(
id='table',
columns=[ {"name": i, "id": i} for i in X.columns],
data=X.to_dict("rows")
)
])
import time
import threading
# 定期的に繰り返すスレッド
def worker():
global X
do_layout()
print(time.gmtime())
X[0][0] = X[0][0] + 1
print(X[0][0])
# 動作試験のため、わざと 8 秒待つようにしている
time.sleep(8)
def mainloop():
# 5秒間隔
time_interval = 5
now = time.time()
while True:
t = threading.Thread(target=worker)
t.start()
t.join()
wait_time = time_interval - ( (time.time() - now) % time_interval )
print(wait_time)
time.sleep(wait_time)
if __name__ == '__main__': t0 = threading.Thread(target=mainloop)
t0.start()
# マルチスレッドにしたい。debug は False で. (debug=True に変えたときの動作は確認していません)
app.run_server(debug=False)
本サイトは金子邦彦研究室のWebページです.サイトマップは,サイトマップのページをご覧下さい. 本サイト内の検索は,サイト内検索のページをご利用下さい.
問い合わせ先: 金子邦彦(かねこ くにひこ) ![]()