はじめに
Streamlitとは
Streamlit(ストリームリット)は、Pythonでデータ分析や機械学習などのアプリケーションを簡単かつ迅速にWebアプリケーションとして公開することができるフレームワークです。コードを書いていくだけで、ブラウザで見ることができるWebアプリケーションを簡単に作成することができます。
本記事の目的
本記事では、初めてStreamlitを利用する方でも、手軽にWebアプリケーションを作成することができるように、Streamlitの基本的な使い方や、データの表示方法・操作方法について解説します。初心者の方でも分かりやすく、実際にサンプルコードを書きながら、一緒に学んでいきましょう。
Streamlitのインストール方法
pipを使ったインストール方法の解説
Streamlitは、pipコマンドを使って簡単にインストールすることができます。
pip install streamlit
上記コマンドを実行すると、必要なライブラリとともにStreamlitがインストールされます。
インストールが完了したら、以下のコマンドを実行して、Streamlitを起動することができます。
streamlit run [ファイル名].py
このコマンドを実行すると、Webアプリケーションが起動されます。デフォルトでは、Webブラウザが自動的に起動して、Webアプリケーションが表示されます。終了するには、Ctrl + C を押してください。
以上が、pipを使ってStreamlitをインストールする方法です。
Streamlitの基本的な使い方
サンプルコードを実行してみる
まずは、簡単なサンプルコードを実行してみましょう。以下のコードは、Streamlitのデフォルトのサンプルコードです。
import streamlit as st
st.title('Streamlit Sample')
st.write('DataFrame')
st.dataframe({
'col1': [1, 2, 3],
'col2': [10, 20, 30],
})
このコードを、streamlit_sample.py
という名前で保存し、ターミナルで以下のコマンドを実行します。
streamlit run streamlit_sample.py
すると、ブラウザが起動し、以下のようなWebアプリケーションが表示されます。
ファイルの構成や命名規則について解説する
StreamlitでWebアプリケーションを作成する場合、以下のようなファイル構成が一般的です。
project/
├─ app.py
├─ requirements.txt
└─ data/
├─ input/
└─ output/
app.py
は、Webアプリケーションのコードを記述するファイルです。このファイル名は、任意のものにすることができますが、app.py
という名前にすることが多いです。
requirements.txt
には、使用しているライブラリを記述します。
data/
は、Webアプリケーションで使用するデータを保存するディレクトリです。input/
には、Webアプリケーションで使用するデータを保存し、output/
には、Webアプリケーションで生成されたデータを保存します。
ファイルの命名規則は、以下のようになっています。
app.py
: Webアプリケーションのコードを記述するファイルrequirements.txt
: 使用しているライブラリを記述するファイルdata/input/
: Webアプリケーションで使用するデータを保存するディレクトリdata/output/
: Webアプリケーションで生成されたデータを保存するディレクトリ
以上が、Streamlitの基本的な使い方についての解説です。次のセクションでは、データの表示方法や操作方法について解説します。
Streamlitの基本的な使い方
コマンドライン引数を使ってアプリケーションを起動する
Streamlitでは、コマンドライン引数を使ってアプリケーションを起動することができます。コマンドライン引数を使うことで、Webアプリケーションの動作をカスタマイズすることができます。
例えば、以下のように--server.port
オプションを指定することで、ポート番号を指定することができます。
streamlit run app.py --server.port 8080
また、--server.address
オプションを指定することで、WebアプリケーションのIPアドレスを指定することができます。
streamlit run app.py --server.address 0.0.0.0
このように、コマンドライン引数を使って、Streamlitの動作をカスタマイズすることができます。
Streamlitでのデータの表示方法
表の表示方法
Streamlitでは、表を簡単に表示することができます。pandas
ライブラリで読み込んだデータを、st.dataframe()
メソッドを使って表示することができます。以下は、pandas
ライブラリで読み込んだデータを表形式で表示する例です。
import pandas as pd
import streamlit as st
# データを読み込む
df = pd.read_csv('data.csv')
# データを表形式で表示する
st.dataframe(df)
このように、st.dataframe()
メソッドを使って、簡単に表を表示することができます。また、st.table()
メソッドを使うことでも、表を表示することができます。ただし、st.table()
メソッドは、データが大きい場合には使わない方が良いです。
グラフの表示方法
Streamlitでは、様々な種類のグラフを表示することができます。matplotlib
やseaborn
などのライブラリで作成したグラフを、st.pyplot()
メソッドを使って表示することができます。以下は、matplotlib
ライブラリで作成したグラフを表示する例です。
import matplotlib.pyplot as plt
import numpy as np
import streamlit as st
# データを生成する
x = np.linspace(0, 10, 100)
y = np.sin(x)
# グラフを作成する
fig, ax = plt.subplots()
ax.plot(x, y)
# グラフを表示する
st.pyplot(fig)
# グラフをファイルに保存する
fig.savefig("img.jpg")
このように、st.pyplot()
メソッドを使って、簡単にグラフを表示することができます。他にも、altair
やbokeh
といったライブラリを使ったグラフの表示も可能です。
画像の表示方法
Streamlitでは、画像を簡単に表示することができます。Pillow
ライブラリなどで読み込んだ画像を、st.image()
メソッドを使って表示することができます。以下は、Pillow
ライブラリで読み込んだ画像を表示する例です。
from PIL import Image
import streamlit as st
# 画像を読み込む
img = Image.open('image.jpg')
# 画像を表示する
st.image(img, caption='Example image', use_column_width=True)
このように、st.image()
メソッドを使って、簡単に画像を表示することができます。また、use_column_width
オプションをTrueにすることで、画像の幅を自動的に調整することもできます。
Streamlitでのデータの操作方法
フォームの作成方法
Streamlitでは、st.form()
メソッドを使って、簡単にフォームを作成することができます。以下は、フォームを作成する例です。
import streamlit as st
# フォームを作成する
with st.form(key='my_form'):
name = st.text_input('名前')
age = st.number_input('年齢')
submit_button = st.form_submit_button(label='送信')
# フォームが送信された場合の処理
if submit_button:
st.write(f'{name}さんは{age}歳です。')
このように、st.form()
メソッドを使って、簡単にフォームを作成することができます。
ドロップダウンメニューの作成方法
Streamlitでは、st.selectbox()
メソッドを使って、簡単にドロップダウンメニューを作成することができます。以下は、ドロップダウンメニューを作成する例です。
import streamlit as st
# ドロップダウンメニューを作成する
options = ['りんご', 'ばなな', 'みかん']
selected_option = st.selectbox('選択してください', options)
# 選択されたオプションを表示する
st.write(f'選択されたオプションは{selected_option}です。')
このように、st.selectbox()
メソッドを使って、簡単にドロップダウンメニューを作成することができます。
おわりに
本記事では、Streamlitを用いた簡単なWebアプリケーションの作成方法について解説しました。
これらの内容を抑えることで、初めてのWebアプリケーション開発においても、簡単かつスムーズに開発を進めることができるようになると思います。
ステップアップしたい方、次はChatGPTのAPIを利用したWebアプリケーションを実装してみはいかがでしょうか?
コメント