Python・AIテック

はじめてのStreamlit

スポンサーリンク
TOP画像

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の利用
  1. アカウント作成: Streamlit Cloudにアクセスし、無料アカウントを作成します。
  2. リポジトリの準備: GitHubにアプリケーションのコードをプッシュします。
  3. デプロイ設定: Streamlit Cloudのダッシュボードから、新しいアプリケーションを作成し、GitHubリポジトリを指定してデプロイします。

これで、作成したアプリケーションがインターネット上で公開され、他の人と簡単に共有できます。

8. まとめ

Streamlitは、Pythonの知識だけで簡単にインタラクティブなWebアプリケーションを作成できる強力なツールです。本記事では、基本的な使い方から、UIコンポーネントの使用方法、インタラクティブなアプリケーションの作成方法、そしてデプロイ方法までを解説しました。Streamlitを使えば、データ分析や機械学習の結果を簡単に共有でき、プロジェクトの価値をより多くの人に伝えることができます。ぜひ、Streamlitを活用して、あなたのデータプロジェクトを次のレベルに引き上げてください。

※※※※※※※※※※※※※※※※※※

以上を生成AIで記載してもらってみました。少し日本語が固いですが、基礎的な動かし方はできたかなと思います。

タイトルとURLをコピーしました