1. はじめに
データサイエンスや機械学習のプロジェクトを行っていると、結果を共有したり、インタラクティブに操作できるツールが欲しいと感じることがあるでしょう。そんな時に便利なのが、Streamlitというライブラリです。Streamlitは、Pythonで簡単にWebアプリケーションを作成できるオープンソースのフレームワークです。本記事では、Streamlitの基本的な使い方から、実際にWebアプリを作成する手順について詳しく解説します。
2. Streamlitとは?
Streamlitは、Pythonのコードを使って簡単にデータアプリケーションを作成できるフレームワークです。データサイエンティストや機械学習エンジニアに特化しており、Jupyter Notebookのようにインタラクティブなデータ分析をWebアプリケーションとして公開することができます。主な特徴は以下の通りです:
- 簡単なインストールと使用:Pythonの知識があれば、簡単にインストールして使い始めることができます。
- リアルタイムでの更新:コードを変更するたびにリアルタイムでアプリケーションが更新されます。
- 豊富なUIコンポーネント:グラフ、テキスト、データフレームなど、さまざまなUIコンポーネントを簡単に追加できます。
3. Streamlitのインストール
まずは、Streamlitをインストールしましょう。StreamlitはPythonのパッケージとして提供されているため、以下のコマンドでインストールできます。
3. Streamlitのインストール
まずは、Streamlitをインストールしましょう。StreamlitはPythonのパッケージとして提供されているため、以下のコマンドでインストールできます。
pip install streamlit
インストールが完了したら、簡単なアプリケーションを作成してみましょう。
4. 基本的な使い方
Streamlitでアプリケーションを作成するには、Pythonのスクリプトファイルを作成し、その中にStreamlitのコードを書きます。例えば、以下のようなコードを書いてみましょう。
import streamlit as st
st.title('Hello Streamlit!')
st.write('Welcome to your first Streamlit app.')
このスクリプトをapp.py
という名前で保存し、以下のコマンドで実行します。
streamlit run app.py
ブラウザが自動的に開き、「Hello Streamlit!」というタイトルと、「Welcome to your first Streamlit app.」というテキストが表示されます。これで、基本的なStreamlitアプリケーションが完成です。
5. UIコンポーネントの使用
Streamlitには、データの表示やインタラクションを実現するための多くのUIコンポーネントが用意されています。以下に、いくつかの基本的なコンポーネントを紹介します。
テキスト入力と表示
import streamlit as st
name = st.text_input('Enter your name:')
st.write(f'Hello, {name}!')
このスクリプトを実行すると、名前を入力するテキストボックスが表示され、入力した名前がリアルタイムで表示されます。
スライダー
import streamlit as st
age = st.slider('Select your age:', 0, 100, 25)
st.write(f'You are {age} years old.')
スライダーを使って年齢を選択し、その値が表示されます。
グラフの表示
import streamlit as st
import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
# データの生成
data = pd.DataFrame({
'x': np.arange(10),
'y': np.random.randn(10)
})
# グラフの作成
fig, ax = plt.subplots()
ax.plot(data['x'], data['y'])
# Streamlitにグラフを表示
st.pyplot(fig)
このスクリプトを実行すると、生成したデータを基にしたグラフが表示されます。
6. インタラクティブなアプリケーションの作成
Streamlitの魅力は、インタラクティブなアプリケーションを簡単に作成できる点にあります。例えば、ユーザーが入力したデータに基づいて結果を動的に表示するアプリケーションを作成してみましょう。
以下の例では、ユーザーが選択した数値に基づいて、正規分布のヒストグラムを表示します。
import streamlit as st
import numpy as np
import matplotlib.pyplot as plt
# ユーザー入力
num_samples = st.slider('Number of samples:', 100, 1000, 500)
# データの生成
data = np.random.randn(num_samples)
# ヒストグラムの作成
fig, ax = plt.subplots()
ax.hist(data, bins=30)
# Streamlitにヒストグラムを表示
st.pyplot(fig)
このスクリプトを実行すると、スライダーを使ってサンプル数を変更でき、リアルタイムでヒストグラムが更新されます。
7. デプロイと共有
作成したStreamlitアプリケーションを他の人と共有するためには、デプロイ(公開)する必要があります。Streamlitは、簡単にデプロイできるクラウドサービス「Streamlit Cloud」を提供しています。
Streamlit Cloudの利用
- アカウント作成: Streamlit Cloudにアクセスし、無料アカウントを作成します。
- リポジトリの準備: GitHubにアプリケーションのコードをプッシュします。
- デプロイ設定: Streamlit Cloudのダッシュボードから、新しいアプリケーションを作成し、GitHubリポジトリを指定してデプロイします。
これで、作成したアプリケーションがインターネット上で公開され、他の人と簡単に共有できます。
8. まとめ
Streamlitは、Pythonの知識だけで簡単にインタラクティブなWebアプリケーションを作成できる強力なツールです。本記事では、基本的な使い方から、UIコンポーネントの使用方法、インタラクティブなアプリケーションの作成方法、そしてデプロイ方法までを解説しました。Streamlitを使えば、データ分析や機械学習の結果を簡単に共有でき、プロジェクトの価値をより多くの人に伝えることができます。ぜひ、Streamlitを活用して、あなたのデータプロジェクトを次のレベルに引き上げてください。
※※※※※※※※※※※※※※※※※※
以上を生成AIで記載してもらってみました。少し日本語が固いですが、基礎的な動かし方はできたかなと思います。