こんにちは、JS2IIUです。
Streamlitは、Pythonを使って簡単にWebアプリケーションを作成できるフレームワークです。特にデータサイエンスや機械学習の結果を手軽に可視化するのに適しています。このブログ記事では、Streamlitの環境構築から基本的な使い方までを丁寧に解説します。
とりあえず動かしてみたい方は環境構築の後、こちらのサンプルプログラムを実行してみてください。


環境構築
Pythonのインストール
まず、Pythonがインストールされていることを確認しましょう。ターミナルやコマンドプロンプトで以下のコマンドを実行して、Pythonのバージョンを確認します。
python --version
もしインストールされていない場合は、Pythonの公式サイトからダウンロードしてインストールしてください。
仮想環境の作成
プロジェクトごとに依存関係を管理するために、仮想環境を作成することをお勧めします。以下のコマンドで仮想環境を作成します。
python -m venv venv
仮想環境を有効にするには、以下のコマンドを実行します。
- Windows:
venv\Scripts\activate
- macOS/Linux:
source venv/bin/activate
Streamlitのインストール
仮想環境が有効になった状態で、Streamlitをインストールします。
pip install streamlit
これで、Streamlitのインストールが完了です。
Streamlitの実行方法
Streamlitアプリケーションを実行するには、まずPythonファイルを作成し、その中にStreamlitコードを記述します。たとえば、app.pyというファイルを作成し、以下のコードを追加します。
import streamlit as st
st.title('Hello, Streamlit!')
st.write('This is a simple Streamlit app.')
次に、以下のコマンドでアプリケーションを実行します。
streamlit run app.py
ブラウザが自動的に開き、アプリケーションが表示されます。
便利に使うための追加インストール
初めてStreamlitを実行した時に以下のメッセージが表示されると思います。こちらは、ソースコードを変更した時にブラウザ側から再読み込みするボタンを表示させるための機能を追加インストールするものです。
For better performance, install the Watchdog module:
$ xcode-select --install
$ pip install watchdog
以下の2つをそれぞれ実行してください。
$ xcode-select --install
$ pip install watchdog
streamlit run ***.pyを実行した後に***.pyの内容を書き換えて保存すると、赤枠の項目が表示されるようになります。Rerunをクリックすると、書き換えた内容で再描画されます。

基本的なUIの解説
Pythonプログラムの中で、UIエレメントを順番に記述していくと、その順番のままにWEBブラウザに表示されるようになります。ここで紹介しているのは一部のUIエレメントです。他のUIについてはStreamlitのドキュメントを参照してください。

タイトル
アプリケーションのタイトルはst.title()関数を使用して設定します。
st.title('アプリケーションのタイトル')
文字列表示
任意の文字列やテキストを表示するには、st.write()関数を使用します。Markdownもサポートされています。
st.write('このテキストは画面に表示されます。')
グラフ表示
Streamlitでは、MatplotlibやAltairなどのライブラリを使用してグラフを簡単に表示できます。
import matplotlib.pyplot as plt
import numpy as np
# ダミーデータの作成
x = np.linspace(0, 10, 100)
y = np.sin(x)
# グラフの作成
fig, ax = plt.subplots()
ax.plot(x, y)
# Streamlitでグラフを表示
st.write('## Streamlitでグラフを表示')
st.pyplot(fig)

DataFrame表示
データフレームを表示するには、st.dataframe()またはst.table()を使用します。
import pandas as pd
# ダミーデータの作成
df = pd.DataFrame({
'列A': [1, 2, 3],
'列B': [4, 5, 6]
})
# データフレームの表示
st.dataframe(df)

ラジオボタン、プッシュボタン、コンボボックス
これらのインタラクティブなウィジェットは、それぞれst.radio(), st.button(), st.selectbox()で作成できます。
# ラジオボタン
選択肢 = st.radio(
"好きなフルーツを選んでください",
('リンゴ', 'オレンジ', 'バナナ'))
# プッシュボタン
if st.button('クリックして下さい'):
st.write('ボタンがクリックされました!')
# コンボボックス
選択 = st.selectbox(
'好きな動物を選んでください',
('犬', '猫', '鳥'))

サイドバーの使い方
サイドバーは、st.sidebarを使って簡単に作成できます。上記のウィジェットをサイドバーに配置することも可能です。
st.sidebar.title('サイドバーのタイトル')
# サイドバーにラジオボタンを配置
サイドバー選択肢 = st.sidebar.radio(
"サイドバーで選択してください",
('オプション1', 'オプション2', 'オプション3'))
参考


まとめ
Streamlitを使えば、Pythonのコードを簡単にWebアプリケーションとして公開できます。基本的なUIコンポーネントを組み合わせて、データの可視化やインタラクティブなアプリケーションを手軽に作成しましょう。次回は、さらに高度な使い方について解説します。
以上の内容を元に、あなたのStreamlitアプリケーション開発を楽しんでください!
最後まで読んでいただきありがとうございました。73


コメント