「データをグラフで見たい」「ちょっとした社内ツールを作りたい」と思っても、普通はWebの知識(HTMLやCSS)が必要ですよね。でもPythonを少し触ったことがある人なら、Streamlit(ストリームリット)というツールを使えば、Pythonだけで簡単にWebアプリが作れます。
この記事では、プログラミング初心者の方にもわかるように、Streamlitの特徴・使い方・よくある活用例をやさしく解説します。途中で出てくる専門用語にも、すぐ下にわかりやすい説明を入れていますので、安心して読み進めてください。
Streamlitとは?
Streamlitは、Pythonで書いたプログラムをそのままWebアプリにできるツールです。
普通、Webアプリを作るには「フロントエンド(見た目の部分)」や「バックエンド(処理の部分)」などを分けて作る必要がありますが、StreamlitならPythonのスクリプトをそのままWeb画面に変換してくれます。
Streamlitでできること
- 売上やアクセス数などをグラフで表示する
- CSVやExcelのデータを整理する
- 機械学習モデル(AIのようなもの)を簡単に試せる
- 社内で使える便利な入力フォームを作る
Streamlitのメリット
- 簡単に作れる:Pythonを書くだけ。Webの知識は不要です。
- 速く試せる:数十行のコードで見た目付きのアプリが完成。
- 自動で更新:コードを保存するだけで、ブラウザに反映されます。
- 豊富なパーツ(ウィジェット):ボタン、スライダー、選択メニューなどを簡単に追加できます。
💡 用語メモ:ウィジェットとは? 画面上で使うボタンや入力フォームなど、ユーザーが操作できるパーツのことです。
Streamlitの仕組み
Streamlitは、上から順番にPythonのコードを実行して、その結果をWeb画面に表示します。
ボタンを押したりスライダーを動かすと、プログラム全体がもう一度動きます。これで最新の状態が画面に反映される仕組みです。
💡 用語メモ:状態(state)とは? アプリが「今どんな値を持っているか」を覚えておく仕組みです。たとえば「前回押したボタンの回数」などを保存しておくと便利です。
Streamlitの使い方(3ステップ)
1. 準備
PythonがインストールされていればOKです。なければ公式サイトからインストールしましょう。
2. Streamlitのインストール
pip install streamlit
3. 動かしてみよう
- 好きなフォルダで「app.py」という名前のファイルを作り、次のコードを貼り付けます。
import streamlit as st
st.title("はじめてのStreamlit")
st.write("こんにちは!これは最初のアプリです。")
- ターミナルで以下を実行します。
streamlit run app.py
- ブラウザが自動で開いて、アプリが表示されれば成功です!
スライダーを使った簡単なアプリ
これが最もシンプルな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アプリづくりを始めてみましょう!

コメント