分析結果が Web アプリ上で簡単に実現できるのが強みである。また、HTML や CSS を書く必要がなく Python だけで完結するのもありがたい。公式ドキュメントも充実していて、ひとまずアプリの挙動を確認するには手軽で適している。
しかし、主にデータサイエンス領域での簡易的な Web アプリに適していて、大規模な Web アプリの開発には適していない。
$ streamlit run test.py
You can now view your Streamlit app in your browser.
Local URL: http://localhost:8501
Network URL: http://xx...
実行時にこのようにターミナル上に出力されれば OK。同時にブラウザ上に以下のようにアプリが立ち上がれば尚良し。出ない場合はブラウザ上に Local URL を入力して直接飛べば良い。
機能を試してみる
Streamlit の更なる機能を試してみる。
DataFrame の表示
pandas の Dataframe を作成し、それをアプリ上で表示してみる。
test.pyを以下のように修正する。(この際、先程起動した Web アプリは起動したままで良い)
import streamlit as st
import pandas as pd
#タイトルを表示
st.title('It is a test.')
# データフレームを作成
df = pd.DataFrame({
'column 1': [1, 2, 3, 4],
'column 2': ["a", "b", "d", "d"],
'column 3': [2, 35.3, 12, 123.124545]
})
# データフレームを表示
st.write(df)
test.py を保存したのち、もう一度ブラウザ上の Web アプリを見てみると右上に"Rerun"と表示されている。ここを押すと修正が反映される。
修正後:
※以下の様にあえてバグを仕込んでみる。
import streamlit as st
import pandas as pd
#タイトルを表示
st.title('It is a test.')
# データフレームを作成
df = pd.DataFrame({
'column 1': [1, 2, 3, 4],
'column 2': ["a", "b", "d", "d", "e"],
'column 3': [2, 35.3, 12, 123.12455]
})
# column 2の要素数を5にする(長さが他の列と揃っていないのでエラー)
# データフレームを表示
st.write(df)
この時、Rerun してみると
ブラウザ上に ValueError が表示される。ありがたいですね。
可視化
折れ線グラフ
折れ線グラフはst.line_chart()で表示できる。
import streamlit as st
import pandas as pd
import numpy as np
#タイトルを表示
st.title('It is a test.')
# データフレームを作成
df = pd.DataFrame(
np.random.randn(30, 2),
columns=['a', 'b']
)
# 折れ線グラフを表示
st.line_chart(df)
# データフレームを表示
st.write(df)
棒グラフ
棒グラフは st.bar_chart で生成出来る。
import streamlit as st
import pandas as pd
import numpy as np
#タイトルを表示
st.title('It is a test.')
# データフレームを作成
df = pd.DataFrame(
np.random.randn(30, 2),
columns=['a', 'b']
)
# 棒グラフを表示
st.bar_chart(df)
import streamlit as st
import pandas as pd
import numpy as np
#タイトルを表示
st.title('It is a test.')
# データフレームを作成
df = pd.DataFrame(
np.random.randn(30, 2),
columns=['a', 'b']
)
if st.checkbox('hoge'):
st.line_chart(df)
# データフレームを表示
st.write(df)