Streamlit 超入門〜爆速でPythonアプリ開発からデプロイまで

Streamlit(ストリームリット)は、オープンソースのPython GUIライブラリで、データ分析系のWebアプリケーションフレームワークとして広く利用されている。Pythonのみを使って簡単なコーディングでWebアプリケーションやフロントエンドのGUIを作成できる。

公式サイト

https://streamlit.io/

  • デプロイする際はアカウント登録必要
  • docのAPIリファレンスに各種ウィジェット(UIデザイン)あり


Get Started

❶ Pythonファイルを作成 <file名>.py
❷ ターミナルで以下を打ち立ち上げ

$ pip install streamlit
$ streamlit run <file名>.py

❸ http://localhost:8501でブラウザが立ち上がる

文字を表示する

❶ streamlitをimportする

import streamlit as st

❷ st.writeでタイトルやテキストを表示する

st.title(‘Streamlit 超入門’)
st.write(‘これはStreamlit 超入門です。’)

テキスト以外でも基本「st.xxx()」の形で使用する

マークダウンを表示する

“””
# Streamlit 超入門
```
$ pip install streamline
```
```python
import streamlit as st
```
“””


表を表示する

❶ pandasをimportする

import pandas as pd

❷ DataFrameを作成して表示する

df = pd.DataFrame({
    ‘1列目’: [1, 2, 3, 4],
    ‘2列目’: [10, 20, 30, 40]
})
st.dataframe(df.style.highlight_max(axis=0), width=1100, height=300)


チャートを表示する

❶ 線グラフ

st.line_chart(df)

❷ エリアグラフ

st.area_chart(df)

❸ 棒グラフ

st.bar_chart(df)


地図を表示する

❶ サンプルのデータフレームを用意する

import pandas as pd
import numpy as np
df = pd.DataFrame(
    np.random.rand(100, 2) / [50, 50] + [35.69, 139.70],
    columns = [ ‘lat’, ‘lon’]
)

❷地図を表示する

st.map(df, size=10, color=‘#0000ff’)


画像を表示する

❶ 画像処理ライブラリPillow(PIL)をimportする

from PIL import Image

❷ 画像を読み込む

sampleImg = Image.open(‘./img/sample.jpg’)

❸ 画像を読み込む

st.image(sampleImg, caption=‘Streamlit’, use_column_width=True)


フォームを表示する

❶ テキストフォームを表示する

text = st.text_input(‘趣味を教えてください’)
‘趣味: ‘, text

❷ セレクトボックスを表示する

option = st.selectbox(
    ‘好きな数字を教えてください’,
    list(range(1, 11))
)
‘好きな数字: ‘, option

❸ スライダーを表示する

condition = st.slider(‘今の調子は?’, 0, 100, 50)
‘コンディション: ‘, condition

❹ 格納メニューを表示する

ex1 = st.expander(‘expander1’)
ex1.write(‘expander1の内容’)
ex2 = st.expander(‘expander2’)
ex2.write(‘expander2の内容’)


2カラムレイアウト

left_column, right_column = st.columns(2)
button = left_column.button(‘テキスト表示’)
if button:
    right_column.write(‘右カラム’)

3カラムなら変数を1個追加しculumns(3)をする

サイドバーレイアウト

text = st.sidebar.text_input(‘趣味を教えてください’)
condition = st.sidebar.slider(‘今の調子は?’, 0, 100, 50)

sidebarを付与された要素全てサイドバーで表示される

プログレスバーを表示する

❶ Python独自ライブラリtimeをimport

import time

❷ プログレスバーを表示する

latest_iteration = st.empty()
bar = st.progress(0)
for i in range(100):
    latest_iteration.text(i + 1)
    bar.progress(i + 1)
    time.sleep(0.01)


アプリをデプロイする

❶ requirements.txtを作成する

streamlit==1.31.1

バージョンを確認する場合は$ pip freezeで表示可能
❷ GitHubにプッシュする
❸ Streamlitのサイトでアカウント登録する
❹ New appをクリック
❺ 各種設定をする

ブログ一覧へ戻る

©︎My Portfolio