ヒトリ歩き

愚痴とかいろいろ書きます

Pythonで簡単なGUI作成: Streamlitの活用

この記事が目に留まり、Streamlitを知ったので、使ってみた。 Pythonで簡単にWebアプリの画面が出来ちゃう

it.impress.co.jp

Streamlit(ストリームリット)

Streamlitは、データ分析型のWebアプリケーションフレームワークとして広く利用されている。
簡単なコーディングでGUIを作成できる。

インストール

streamlitをインストールして、streamlit helloを実行すると、ブラウザが立ち上がりサンプルを確認できる。

pip install streamlit
streamlit hello

streamlit.io

チュートリアルをやってみる

docs.streamlit.io

下記のコードをuber_pickups.pyで作成し、streamlit run uber_pickups.pyを実行するとブラウザに画面が表示される。

import streamlit as st
import pandas as pd
import numpy as np

st.title("Uber pickups in NYC")

Numpyでヒストグラムのデータを生成し、st.bar_chart関数を使うだけで、ヒストグラムが表示できる。

hist_values = np.histogram(data[DATE_COLUMN].dt.hour, bins=24, range=(0, 24))[0]
st.bar_chart(hist_values)

mapにもプロットできる。

st.sliderを使って、スライダーも表示可能。 ラベルと最小、最大、デフォルト値を設定する。

hour_to_filter = st.slider('hour', 0, 23, 17)  # min: 0h, max: 23h, default: 17h

チェックボックスを使って、データの表示/非表示もできる。

ページの遷移の設定も可能。チュートリアルも存在するが、ここでは割愛する。

最後に

たた数行でグラフやマップも表示できるし、他にも入力フォームもPythonだけで出来てしまう。
PySimpleGUIも同じように数行で画面が作成できるけど、PySimpleGUIよりも今どきなWebアプリの画面ができるので、凄いなと感じた。
次回は、入力フォームからデータの登録とグラフの表示をしてみる。