コンテンツへスキップ
Miya-Gadget
  • トップページ
  • PC
  • ガジェット
  • 生成AI
  • 旅行
  • 車
  • おしらせ
  • Miya-Vacation
  • お問い合わせ
JA / EN
  1. ホーム
  2. PC
  3. 【Python】Streamlitの使い方完全ガイド!初心者でも簡単にWebアプリ開発してみた
PC

【Python】Streamlitの使い方完全ガイド!初心者でも簡単にWebアプリ開発してみた

2025年11月11日 · Shichinomiya
【Python】Streamlitの使い方完全ガイド!初心者でも簡単にWebアプリ開発してみた

こんにちは、七宮さん(@shichinomiya_s)です。

今回は、PythonでWebアプリを簡単に作れるフレームワーク「Streamlit」を使ってみたので、その使い方や魅力についてお話したいと思います。

 

Table of Contents

Toggle
  • Streamlitとは
    • Streamlitの主な特徴
  • Streamlitのインストール方法
  • Streamlitの基本的な使い方
    • Hello Worldアプリ
    • 主要なコンポーネント
      • テキスト表示
      • 入力ウィジェット
      • データ表示とチャート
  • Streamlitの応用例
    • 例1 データ分析ダッシュボード
    • 例2 画像処理アプリ
    • 例3 機械学習モデルのデモ
    • Streamlitの便利な機能
  • まとめ
    • あわせて読みたい

Streamlitとは

StreamlitはPythonで書かれたオープンソースのフレームワークで、データサイエンティストや機械学習エンジニアが簡単にWebアプリを作成できるツールです。

通常、Webアプリケーションを作るにはHTML、CSS、JavaScriptといったフロントエンド技術の知識が必要になりますが、Streamlitを使えばPythonのコードだけでインタラクティブなWebアプリが作れるんですね。これは本当に便利だと思います。

 

Streamlitの主な特徴

  • Pythonだけで完結:フロントエンドの知識が不要
  • リアルタイム更新:コードを変更すると即座に反映される
  • 豊富なウィジェット:ボタン、スライダー、チャートなど様々な部品が用意されている
  • シンプルな記法:直感的でわかりやすいAPI設計

データ分析の結果を可視化したり、機械学習モデルのデモアプリを作ったりする際に、とても重宝するフレームワークだと思います。

 

Streamlitのインストール方法

Streamlitのインストールは非常に簡単です。pipを使って一発でインストールできます。

pip install streamlit

仮想環境を使っている場合は、その環境をアクティベートしてからインストールしてください。

# 仮想環境の作成例
python -m venv venv

# Windows
venv\Scripts\activate

# Mac/Linux
source venv/bin/activate

# Streamlitのインストール
pip install streamlit

インストールが完了したら、バージョンを確認してみましょう。

streamlit --version

これでStreamlitのバージョンが表示されれば、インストール成功です。

 

Streamlitの基本的な使い方

それでは、実際にStreamlitを使ってシンプルなWebアプリを作ってみましょう。

 

Hello Worldアプリ

まずは基本的な「Hello World」アプリから始めます。app.pyというファイルを作成して、以下のコードを書いてみてください。

import streamlit as st

st.title('Hello Streamlit!')
st.write('こんにちは、Streamlitの世界へようこそ!')

このアプリを起動するには、ターミナルで以下のコマンドを実行します。

streamlit run app.py

すると、ブラウザが自動的に開いて、作成したアプリが表示されるはずです。デフォルトではhttp://localhost:8501でアクセスできますね。

 

主要なコンポーネント

Streamlitには様々なコンポーネントが用意されています。よく使うものをいくつかご紹介します。

 

テキスト表示

import streamlit as st

# タイトル
st.title('タイトル')

# ヘッダー
st.header('ヘッダー')

# サブヘッダー
st.subheader('サブヘッダー')

# 通常のテキスト
st.write('通常のテキストです')

# マークダウン
st.markdown('**太字**や*斜体*も使えます')

 

入力ウィジェット

# テキスト入力
name = st.text_input('お名前を入力してください')
st.write(f'こんにちは、{name}さん!')

# スライダー
age = st.slider('年齢を選択してください', 0, 100, 25)
st.write(f'あなたは{age}歳ですね')

# ボタン
if st.button('クリックしてね'):
    st.write('ボタンがクリックされました!')

# セレクトボックス
option = st.selectbox(
    'お好きな言語は?',
    ['Python', 'JavaScript', 'Go', 'Rust']
)
st.write(f'{option}を選択しました')

 

データ表示とチャート

Streamlitはデータの可視化にも優れています。

import pandas as pd
import numpy as np

# データフレームの表示
df = pd.DataFrame({
    '列1': [1, 2, 3, 4],
    '列2': [10, 20, 30, 40]
})
st.dataframe(df)

# 折れ線グラフ
chart_data = pd.DataFrame(
    np.random.randn(20, 3),
    columns=['a', 'b', 'c']
)
st.line_chart(chart_data)

# 面グラフ
st.area_chart(chart_data)

# 棒グラフ
st.bar_chart(chart_data)

これらの基本的なコンポーネントを組み合わせるだけで、かなり本格的なアプリが作れるというお話になります。

 

Streamlitの応用例

ここからは、もう少し実践的な応用例をご紹介します。

 

例1: データ分析ダッシュボード

CSVファイルをアップロードして分析できるダッシュボードを作ってみました。

import streamlit as st
import pandas as pd
import matplotlib.pyplot as plt

st.title('データ分析ダッシュボード')

# ファイルアップロード
uploaded_file = st.file_uploader("CSVファイルを選択してください", type='csv')

if uploaded_file is not None:
    # データ読み込み
    df = pd.read_csv(uploaded_file)

    # データの表示
    st.subheader('データプレビュー')
    st.dataframe(df.head())

    # 基本統計量
    st.subheader('基本統計量')
    st.write(df.describe())

    # カラム選択
    columns = df.columns.tolist()
    selected_column = st.selectbox('可視化するカラムを選択', columns)

    # ヒストグラム
    st.subheader(f'{selected_column}のヒストグラム')
    fig, ax = plt.subplots()
    ax.hist(df[selected_column].dropna(), bins=30)
    st.pyplot(fig)

このコードを使えば、簡単にデータ分析用のダッシュボードが作れますね。実際のプロジェクトでも十分使えると思います。

 

例2: 画像処理アプリ

画像をアップロードしてフィルターをかけるアプリも作ってみました。

import streamlit as st
from PIL import Image, ImageFilter

st.title('画像処理アプリ')

# 画像アップロード
uploaded_image = st.file_uploader("画像を選択してください", type=['jpg', 'jpeg', 'png'])

if uploaded_image is not None:
    # 画像読み込み
    image = Image.open(uploaded_image)

    # 元の画像を表示
    st.subheader('元の画像')
    st.image(image, use_column_width=True)

    # フィルター選択
    filter_type = st.selectbox(
        'フィルターを選択',
        ['なし', 'ぼかし', '輪郭検出', 'シャープ']
    )

    # フィルター適用
    if filter_type == 'ぼかし':
        filtered_image = image.filter(ImageFilter.BLUR)
    elif filter_type == '輪郭検出':
        filtered_image = image.filter(ImageFilter.FIND_EDGES)
    elif filter_type == 'シャープ':
        filtered_image = image.filter(ImageFilter.SHARPEN)
    else:
        filtered_image = image

    # 処理後の画像を表示
    st.subheader('処理後の画像')
    st.image(filtered_image, use_column_width=True)

こういった画像処理アプリも、数十行のコードで作れてしまうのは驚きですね。

 

例3: 機械学習モデルのデモ

実は、機械学習モデルのデモアプリを作るのもStreamlitの得意分野です。

import streamlit as st
import numpy as np
from sklearn.datasets import load_iris
from sklearn.ensemble import RandomForestClassifier

st.title('アイリス分類器')

# モデルの学習
@st.cache_resource
def train_model():
    iris = load_iris()
    clf = RandomForestClassifier()
    clf.fit(iris.data, iris.target)
    return clf, iris

clf, iris = train_model()

# 入力欄
st.subheader('花の特徴を入力してください')
col1, col2 = st.columns(2)

with col1:
    sepal_length = st.slider('がく片の長さ', 4.0, 8.0, 5.0)
    sepal_width = st.slider('がく片の幅', 2.0, 4.5, 3.0)

with col2:
    petal_length = st.slider('花弁の長さ', 1.0, 7.0, 4.0)
    petal_width = st.slider('花弁の幅', 0.1, 2.5, 1.0)

# 予測
if st.button('分類する'):
    features = np.array([[sepal_length, sepal_width, petal_length, petal_width]])
    prediction = clf.predict(features)[0]
    species = iris.target_names[prediction]

    st.success(f'予測結果: **{species}**')

    # 確率表示
    probabilities = clf.predict_proba(features)[0]
    st.subheader('各クラスの確率')
    for i, prob in enumerate(probabilities):
        st.write(f'{iris.target_names[i]}: {prob:.2%}')

@st.cache_resourceデコレータを使うことで、モデルの学習結果をキャッシュできるのも便利なポイントですね。

 

Streamlitの便利な機能

その他にも、Streamlitには便利な機能がたくさんあります。

機能説明使用例
サイドバー左側にサイドバーを配置st.sidebar.slider()
カラムレイアウト画面を複数列に分割st.columns(2)
エキスパンダー折りたたみ可能なセクションst.expander()
プログレスバー処理の進行状況を表示st.progress()
キャッシュ関数の結果をキャッシュ@st.cache_data

これらを組み合わせることで、より高度なアプリケーションが作れるかと思います。

 

まとめ

今回は、Streamlitを使ったWebアプリ開発についてお話しました。

Streamlitの魅力をまとめると、以下のようになります。

  • 学習コストが低い:Pythonの知識だけで始められる
  • 開発スピードが速い:プロトタイプを素早く作れる
  • コードがシンプル:少ないコード量で多機能なアプリが作れる
  • デプロイも簡単:Streamlit Cloudを使えば無料で公開できる

実際に使ってみて、データ分析の結果を共有したり、機械学習モデルのデモを作ったりするのに最適なツールだと感じました。もちろん、大規模なアプリケーションには向いていないかもしれませんが、社内ツールやプロトタイプ作成には十分すぎるほどの機能があると思います。

ちなみに、Streamlitで作ったアプリは「Streamlit Cloud」という無料のホスティングサービスで簡単に公開できるので、GitHubと連携させて使ってみるのもおすすめです。

Pythonでデータ分析や機械学習をやっている皆さんは、ぜひStreamlitを試してみてはいかがでしょうか。きっと開発の効率が上がると思いますよ。

 

いかがだったでしょうか。この記事が皆さんのStreamlit活用の参考になれば幸いです。

あわせて読みたい

  • 👉 【Flask + WebAuthn】スマホ対応の家計簿Webアプリを作ってみた【パスキー認証】
  • 👉 Amazonアソシエイト公式カードジェネレーター終了!代替の無料ツールを公開【ブログ・WordPress対応】
  • 👉 Nodeをダウングレードせずに「`GLIBC_2.28′ not found」を解決したお話
前の記事 CX-30のマツコネを8.8インチから10.25インチモニターに交換してみた (Mazda3)
次の記事 Claude Codeの使い方完全ガイド!Windows初心者でも5分で始められるAI開発環境

Related Posts

【検証】GTX 1080Tiで最新AI「Qwen 3.5」はどこまで動く?ローカルLLMベンチマーク

【検証】GTX 1080Tiで最新AI「Qwen 3.5」はどこまで動く?ローカルLLMベンチマーク

【かんたんデータ化】MiniDVビデオテープをPCにダビングする方法

【かんたんデータ化】MiniDVビデオテープをPCにダビングする方法

Claude Codeで作る初めてのプログラム!対話しながらゲームを作ってみた

Claude Codeで作る初めてのプログラム!対話しながらゲームを作ってみた

NVMe非対応なPCにNVMe SSD (960EVO)を取り付けて高速化を図ったお話。

NVMe非対応なPCにNVMe SSD (960EVO)を取り付けて高速化を図ったお話。

コメントを残す コメントをキャンセル

メールアドレスが公開されることはありません。 ※ が付いている欄は必須項目です

七宮さん

七宮さん

PC・ガジェット好きのブロガー。日々の発見を共有しています。

@shichinomiya_s

人気の記事

  • CX-30のマツコネを8.8インチから10.25インチモニターに交換してみた (Mazda3)
  • Amazonアソシエイト公式カードジェネレーター終了!代替の無料ツールを公開【ブログ・WordPress対応】
  • 【2026年版】ブラウン シェーバー Series 5 の電池交換を自分でやる方法【かんたん】
  • 【検証】Tesla V100 32GBでローカルLLMはどこまで動く?Qwen 3.6実測ベンチマーク — 中古13万円でMoE 98.8 tok/s
  • RAVPower RP-PB060 6700mAhを買ってみたので、雑にレビューしてみる。

カテゴリー

  • PC
  • おしらせ
  • おでかけ
  • ガジェット
  • レンタルサーバー・VPS
  • 回線
  • 家電
  • 旅行
  • 海外通販
  • 生成AI
  • 自転車
  • 車
Miya-Gadget

PC・ガジェット・DIYのレビューブログ。
日々のテック体験を共有しています。

カテゴリー

  • PC (38)
  • ガジェット (26)
  • 生成AI (23)
  • 回線 (7)
  • おしらせ (5)
  • おでかけ (3)
  • 旅行 (3)
  • 海外通販 (2)

最近の投稿

  • 【費用0円】エプソンの廃インク限界エラーを無料解除!EP-804Aを自力リセットした全手順
  • 【徹底検証】Tesla V100 SXM2を2枚載せる「デュアルNVLink基板」の正体:約10万円でVRAM 64GB・300GB/s環境は実用になるか?
  • 【検証】RTX 4080 32GB改造品の実力:Qwen3.8-27Bの262K・125B MoE・MiniMax H3動画生成を実測レビュー
  • 【検証】Tesla V100 32GBでQwen3.8-27Bは動くか?128kコンテキストが1枚に載った実測ベンチマーク

© 2026 Miya-Gadget. All rights reserved.