MENU

はじめてのStreamlit入門|初心者でもわかる特徴と使い方

「データをグラフで見たい」「ちょっとした社内ツールを作りたい」と思っても、普通はWebの知識(HTMLやCSS)が必要ですよね。でもPythonを少し触ったことがある人なら、Streamlit(ストリームリット)というツールを使えば、Pythonだけで簡単にWebアプリが作れます。

この記事では、プログラミング初心者の方にもわかるように、Streamlitの特徴・使い方・よくある活用例をやさしく解説します。途中で出てくる専門用語にも、すぐ下にわかりやすい説明を入れていますので、安心して読み進めてください。

目次

Streamlitとは?

Streamlitは、Pythonで書いたプログラムをそのままWebアプリにできるツールです。

普通、Webアプリを作るには「フロントエンド(見た目の部分)」や「バックエンド(処理の部分)」などを分けて作る必要がありますが、StreamlitならPythonのスクリプトをそのままWeb画面に変換してくれます。

Streamlitでできること

  • 売上やアクセス数などをグラフで表示する
  • CSVやExcelのデータを整理する
  • 機械学習モデル(AIのようなもの)を簡単に試せる
  • 社内で使える便利な入力フォームを作る

Streamlitのメリット

  1. 簡単に作れる:Pythonを書くだけ。Webの知識は不要です。
  2. 速く試せる:数十行のコードで見た目付きのアプリが完成。
  3. 自動で更新:コードを保存するだけで、ブラウザに反映されます。
  4. 豊富なパーツ(ウィジェット):ボタン、スライダー、選択メニューなどを簡単に追加できます。

💡 用語メモ:ウィジェットとは? 画面上で使うボタンや入力フォームなど、ユーザーが操作できるパーツのことです。


Streamlitの仕組み

Streamlitは、上から順番にPythonのコードを実行して、その結果をWeb画面に表示します。

ボタンを押したりスライダーを動かすと、プログラム全体がもう一度動きます。これで最新の状態が画面に反映される仕組みです。

💡 用語メモ:状態(state)とは? アプリが「今どんな値を持っているか」を覚えておく仕組みです。たとえば「前回押したボタンの回数」などを保存しておくと便利です。


Streamlitの使い方(3ステップ)

1. 準備

PythonがインストールされていればOKです。なければ公式サイトからインストールしましょう。

2. Streamlitのインストール

pip install streamlit

3. 動かしてみよう

  1. 好きなフォルダで「app.py」という名前のファイルを作り、次のコードを貼り付けます。
import streamlit as st
st.title("はじめてのStreamlit")
st.write("こんにちは!これは最初のアプリです。")
  1. ターミナルで以下を実行します。
streamlit run app.py
  1. ブラウザが自動で開いて、アプリが表示されれば成功です!

スライダーを使った簡単なアプリ

これが最もシンプルなStreamlitアプリの例です。

import streamlit as st
import numpy as np
import pandas as pd

st.title("スライダーで動くグラフ")

# スライダーを使って値を入力
size = st.slider("データの数", 10, 200, 50)
noise = st.slider("ノイズの強さ", 0, 100, 20)

# データを作成
x = np.arange(size)
y = np.sin(x / 3) + np.random.randn(size) * (noise / 100)

df = pd.DataFrame({"x": x, "y": y})

# 折れ線グラフを表示
st.line_chart(df, x="x", y="y")

スライダーを動かすとグラフが変化します。これだけで“動くアプリ”が完成です!


よく使うウィジェット(部品)

種類コード説明
ボタンst.button("実行")押したときに動作をする
テキスト入力st.text_input("名前")文字を入力できる
選択メニューst.selectbox("選択", ["A","B","C"])プルダウン形式の選択肢
チェックボックスst.checkbox("同意する")チェックのON/OFFを取得
ファイルアップロードst.file_uploader("CSVを選択", type=["csv"])CSVや画像をアップロード

データをグラフで見てみよう

Streamlitはグラフ表示がとても簡単です。

st.line_chart(df)  # 折れ線グラフ
st.bar_chart(df)   # 棒グラフ
st.area_chart(df)  # 面グラフ

💡 用語メモ:データフレームとは? いわゆる「表(Excelのような形式)」のこと。行と列でデータを整理して扱います。


CSVファイルを読み込んでグラフにする

import streamlit as st
import pandas as pd

st.title("CSVを読み込んでグラフを作る")

uploaded = st.file_uploader("CSVをアップロード", type=["csv"]) 
if uploaded:
    df = pd.read_csv(uploaded)
    st.dataframe(df.head())  # データの先頭5行を表示
    st.line_chart(df)

アップロードしたCSVの内容がグラフになります。社内のデータをすぐに可視化できる便利な使い方です。


アプリを共有する方法

自分のパソコンで動かす場合

コマンドで起動したあと、表示されたURLをチームに共有すると、同じネットワーク内なら見てもらえます。

インターネット上で公開する場合

初心者におすすめなのが「Streamlit Community Cloud」です。GitHubというサービスにコードを置くだけで、自動的に公開できます。

💡 用語メモ:GitHubとは? プログラムのファイルを保存・共有するサービス。無料で使えます。


Streamlitが役立つ場面

  • 営業チーム:売上データをグラフで共有
  • 経理チーム:CSVの整理や集計を自動化
  • データ分析担当:AIモデルのテスト画面を作成
  • 現場スタッフ:入力フォームを簡単に作成

「Excelで頑張っていた作業」をStreamlitに置き換えると、作業時間がぐっと減ります。


よくある質問

Q. コードを保存するたびにアプリがリロードされるのはなぜ?
→ Streamlitは常に最新の状態を表示する仕組みです。必要に応じてst.session_stateを使うと値を保持できます。

Q. CSVを読み込むと遅いときは?
@st.cache_dataを使ってデータを一時保存(キャッシュ)すると、2回目以降が速くなります。

Q. 日本語が文字化けする?
→ CSVを読み込むときにencoding="utf-8"を指定してみてください。


まとめ

  • StreamlitはPythonだけでWebアプリが作れるツール
  • 難しいWeb知識がなくても、スライダーやボタンで“動く資料”が作れます。
  • CSVやExcelのデータをすぐにグラフ化できるので、仕事にもすぐ使えます。

💡 最初は「動かしてみる」だけでOK。少しずつ自分のデータに置き換えていくと、楽しみながら学べます。


チェックリスト(ここまでできたらOK)

  • Streamlitをインストールした
  • 最初のアプリ(タイトルとテキスト)を動かした
  • スライダー付きグラフを作った
  • CSVをアップロードしてグラフを表示した
  • Streamlit Community Cloudで公開してみた

Streamlitは、難しいプログラミングを“身近なツール”に変えてくれる魔法のような存在です。ぜひ今日から、あなたの業務や趣味のデータを使って、簡単なWebアプリづくりを始めてみましょう!

よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!

この記事を書いた人

meibuのアバター meibu 中年ブロガー

【このブログを書いている人】
こんにちは、めいぶです!
読者の「ちょっと気になる」「でも難しそう…」をやさしく解決したくてこのブログを始めました。

🔹プロフィールまとめ
◎ 本業は運送業の管理職
 → 現場からマネジメントまで幅広く経験

● 趣味はパソコン・ランニング・情報収集

●興味のあるテーマ:
 副業 / ChatGPT

● 発信スタイルは…
 → 「初心者にもわかりやすく」+「図解・たとえ話も使って解説」

● ブログの目的:
 日常に“ちょっと得する”選択肢を増やすこと

🔸こんな人に読んでほしい!
投資や副業に興味があるけど、最初の一歩が踏み出せない方

ChatGPTってなに?使い方がわからない方

忙しいけど、自分の未来のために動きたい方

● 「読んでよかった!」と思える情報を、これからもコツコツ更新していきます!
当ブログはアフェリエイト広告を利用しています。

コメント

コメントする

目次