
攻略法
Streamlit 3時間デプロイガイド
DDASH Hacksの運営協力をしているCraftStadiumの山本です。
本記事では、DDASH Hacksに臨むにあたって役立つ情報を共有します。
なお、本内容は教員や審査員による公式な見解、または監修を受けたものではありません。
この記事の3行まとめ
- StreamlitはPythonだけでWebアプリが作れるフレームワーク。HTML/CSS/JavaScriptの知識は一切不要です
- 「Google Colab + pandasデータ分析入門 (外部リンク)」で作ったpandas + Plotlyの分析結果を、インタラクティブなダッシュボードに変換できます
- Streamlit Community Cloudを使えば、無料でインターネット上にアプリを公開できます
この記事のゴール
Before: pandasとPlotlyでグラフは作れるけど、Colabのノートブックのままで見せ方がイマイチ…
After: 審査員がURLをクリックするだけで、インタラクティブに操作できるWebダッシュボードが見られる状態
具体的には、以下を3時間で完成させます:
| 時間 | やること | 成果物 |
|---|---|---|
| 0〜30分 | Streamlitの基本を理解する | Hello Worldアプリ |
| 30〜90分 | 分析結果をダッシュボードに組み込む | 完成版ダッシュボード |
| 90〜120分 | デザインを整える | 見栄えの良いアプリ |
| 120〜180分 | Streamlit Community Cloudにデプロイ | 公開URL |
📌 前提: この記事は「Google Colab + pandasデータ分析入門 (外部リンク)」を完了していることを前提としています。pandasやPlotlyの基本が不安な方は、先にそちらを読んでください。
1. Streamlitとは(5分で理解)
一言でいうと
「Pythonのスクリプトを書くだけで、Webアプリが自動的にできあがるフレームワーク」です。
普通のWebアプリ開発では、Python(バックエンド)に加えてHTML/CSS/JavaScript(フロントエンド)の知識が必要です。Streamlitを使うと、Pythonだけで以下のようなものが作れます:
- インタラクティブなデータダッシュボード
- データ分析ツール(フィルタやグラフを操作できる)
- 機械学習のデモアプリ
- CSVアップロード → 自動分析アプリ
なぜDDASH HacksでStreamlitがおすすめなのか
- 「Google Colab + pandasデータ分析入門 (外部リンク)」で書いたpandas + Plotlyのコードがほぼそのまま使える。学習コストが最小限
st.plotly_chart()でPlotlyのインタラクティブ機能がそのまま動く。ホバー、ズーム、選択など- 審査員に「URLを共有するだけ」でデモができる。パワポにURLを貼ればOK
- デプロイが無料。Streamlit Community Cloudなら1円もかかりません
Google ColabとStreamlitの違い
| 項目 | Google Colab | Streamlit |
|---|---|---|
| 用途 | データ分析・試行錯誤 | 成果物として見せる |
| 操作する人 | 自分(開発者) | 誰でも(ユーザー) |
| 見た目 | ノートブック形式 | Webアプリ形式 |
| 共有方法 | Colabリンク共有 | URLを開くだけ |
| インタラクティブ性 | コードを実行する必要あり | ボタン・スライダーで操作 |
つまり:Colabは「分析する場所」、Streamlitは「分析結果を見せる場所」 です。
2. 環境を準備する(10分)
Google Colabで動かす場合(最も簡単)
実は、Google Colab上でもStreamlitを動かすことができます。ハッカソン中のプロトタイピングにはこの方法が最速です:
# Streamlitのインストール(Colabにはプリインストールされていない)
!pip install -q streamlit
次に、Colabのセルにアプリのコードを書き出して実行します:
%%writefile app.py import streamlit as st import pandas as pd import plotly.express as pxst.title("🎯 DDASH Hacks 2025 ダッシュボード")
st.write("Streamlitで作ったはじめてのWebアプリです!")サンプルデータ
data = {
"都道府県": ["北海道", "東京都", "愛知県", "大阪府", "京都府", "福岡県", "沖縄県"],
"人口(万人)": [522, 1404, 748, 884, 258, 513, 147],
"面積(km²)": [83424, 2194, 5173, 1905, 4612, 4987, 2283],
"地方": ["北海道", "関東", "中部", "近畿", "近畿", "九州", "九州"]
}
df = pd.DataFrame(data)st.dataframe(df)
fig = px.bar(df, x="都道府県", y="人口(万人)", color="地方", title="都道府県別人口")
st.plotly_chart(fig, use_container_width=True)
アプリを起動してブラウザからアクセスできるようにします:
# Streamlitアプリを起動(バックグラウンドで実行) !streamlit run app.py &>/content/logs.txt &少し待ってからlocaltunnelでトンネルを作成
!npm install -g localtunnel
import time
time.sleep(3)
!lt --port 8501
表示されたURLをクリックすると、Streamlitアプリが開きます。
⚠️ localtunnelが接続できない場合: localtunnelはサーバー側の問題で接続が不安定になることがあります。「connection refused」やページが表示されない場合は、以下の代替手段を試してください:
# 代替:cloudflaredを使う方法
!wget -q https://github.com/cloudflare/cloudflared/releases/latest/download/cloudflared-linux-amd64 -O cloudflared
!chmod +x cloudflared
!./cloudflared tunnel --url http://localhost:8501 &
それでもうまくいかない場合は、ngrokを使う方法もあります。詳しくは「ngrokの使い方 - デプロイが間に合わなかった時の最終手段 (外部リンク)」を参照してください。
⚠️ 注意: Colab上でのStreamlit実行はあくまでプロトタイプ確認用です。本番デプロイにはセクション5の「Streamlit Community Cloud」を使ってください。
ローカルPCで動かす場合
自分のパソコンで開発する場合は、以下の手順です:
① Pythonがインストールされているか確認
ターミナル(Windows: PowerShell / Mac: Terminal)を開いて:
python --version
# → Python 3.10以上が表示されればOK
Pythonが入っていない場合は python.org (外部リンク) からインストールしてください。
② Streamlitのインストール
pip install streamlit pandas plotly
③ 動作確認
streamlit hello
ブラウザが自動で開いて、Streamlitのデモアプリが表示されれば成功です。
📌 Windows / Macどちらでも同じ手順です。 Streamlitはクロスプラットフォーム対応なので、OSの違いを気にする必要はありません。
3. Streamlitの基本構文を覚える(20分)
最初のアプリを作る
テキストエディタ(VS Code推奨)で app.py というファイルを作り、以下を書きます:
import streamlit as st
st.title("🎯 DDASH Hacks 2025 ダッシュボード")
st.write("はじめてのStreamlitアプリです!")
ターミナルで以下を実行:
streamlit run app.py
ブラウザに「DDASH Hacks 2025 ダッシュボード」と表示されたら成功です!
💡 ポイント: app.py を保存するたびに、ブラウザ右上に「Rerun」ボタンが出ます。クリックすると変更が即座に反映されます。「Always rerun」を選ぶと保存するだけで自動更新されて便利です。
テキスト表示
st.title("タイトル") # 大見出し
st.header("ヘッダー") # 中見出し
st.subheader("サブヘッダー") # 小見出し
st.write("普通のテキスト") # 汎用的なテキスト表示
st.caption("キャプション") # 小さな注釈テキスト
st.markdown("**太字**や*斜体*も使えます") # Markdown記法
データの表示
import pandas as pddf = pd.DataFrame({
"都道府県": ["東京都", "大阪府", "京都府"],
"人口(万人)": [1404, 884, 258]
})表形式で表示(ソート・検索機能付き)
st.dataframe(df)
静的な表(シンプルに見せたいとき)
st.table(df)
数値を大きく表示(KPI表示に便利)
st.metric(label="総人口", value="2,546万人", delta="-2.3%")
グラフの表示(Plotly連携)
「Google Colab + pandasデータ分析入門 (外部リンク)」で作ったPlotlyのグラフが、1行追加するだけでStreamlit上に表示できます:
import plotly.express as pxfig = px.bar(df, x="都道府県", y="人口(万人)", title="都道府県別人口")
これだけ! Plotlyのインタラクティブ機能もそのまま動く
st.plotly_chart(fig, use_container_width=True)
💡 ポイント: use_container_width=True を付けると、グラフがアプリの横幅いっぱいに広がります。付けないと小さめに表示されることがあります。
ユーザー入力(インタラクティブ機能の核)
Streamlitの最大の強みは「ユーザーが操作できるUI部品」を簡単に追加できることです:
# ドロップダウンメニュー selected = st.selectbox("地方を選択", ["全国", "北海道", "関東", "中部", "近畿", "九州"])複数選択
selected_list = st.multiselect("表示する都道府県", df["都道府県"].tolist(), default=df["都道府県"].tolist())
スライダー
min_pop = st.slider("人口の下限(万人)", 0, 1500, 100)
テキスト入力
keyword = st.text_input("キーワードで検索")
チェックボックス
show_data = st.checkbox("生データを表示する", value=False)
ファイルアップロード
uploaded_file = st.file_uploader("CSVファイルをアップロード", type=["csv"])
⚠️ Streamlitの重要な仕組み: ユーザーがUI部品を操作するたびに、Pythonスクリプト全体が上から下まで再実行されます。これがStreamlitの基本動作です。最初は戸惑うかもしれませんが、「スクリプトが毎回全部動く」と理解しておけばOKです。
4. ダッシュボードを作る(60分)
ここからが本番です。「Google Colab + pandasデータ分析入門 (外部リンク)」で使ったデータを使って、本格的なダッシュボードを作ります。
完成版コード
以下のコードを app.py にコピペしてください。これがそのまま動く完成版です:
import streamlit as st import pandas as pd import plotly.express as px============================================
ページ設定(必ず最初に書く)
============================================
st.set_page_config(
page_title="DDASH Hacks 2025 データダッシュボード",
page_icon="📊",
layout="wide", # ワイドレイアウト
)============================================
タイトル
============================================
st.title("📊 都道府県データダッシュボード")
st.caption("DDASH Hacks 2025 — データを活用し社会をより良くするサービスを提案する")============================================
データ準備
============================================
@st.cache_data # データをキャッシュして高速化
def load_data():
data = {
"都道府県": ["北海道", "東京都", "愛知県", "大阪府", "京都府", "福岡県", "沖縄県"],
"人口(万人)": [522, 1404, 748, 884, 258, 513, 147],
"面積(km²)": [83424, 2194, 5173, 1905, 4612, 4987, 2283],
"地方": ["北海道", "関東", "中部", "近畿", "近畿", "九州", "九州"]
}
df = pd.DataFrame(data)
df["人口密度(人/km²)"] = (df["人口(万人)"] * 10000 / df["面積(km²)"]).round(1)
return dfdf = load_data()
============================================
サイドバー(フィルタ機能)
============================================
with st.sidebar:
st.header("🔍 フィルタ")# 地方でフィルタ regions = st.multiselect( "地方を選択", options=df["地方"].unique(), default=df["地方"].unique() ) # 人口でフィルタ min_pop, max_pop = st.slider( "人口の範囲(万人)", min_value=0, max_value=1500, value=(0, 1500) ) st.divider() st.caption("データ出典:総務省統計局")フィルタを適用
filtered_df = df[
(df["地方"].isin(regions)) &
(df["人口(万人)"] >= min_pop) &
(df["人口(万人)"] <= max_pop)
]============================================
KPI(数値ハイライト)
============================================
col1, col2, col3, col4 = st.columns(4)
col1.metric("対象都道府県数", f"{len(filtered_df)}")
col2.metric("総人口", f"{filtered_df['人口(万人)'].sum():,}万人")
col3.metric("平均人口密度", f"{filtered_df['人口密度(人/km²)'].mean():.0f}人/km²")
col4.metric("最大人口", f"{filtered_df['人口(万人)'].max():,}万人")st.divider()
============================================
グラフ(タブで切り替え)
============================================
tab1, tab2, tab3 = st.tabs(["📊 棒グラフ", "🔵 散布図", "🥧 円グラフ"])
with tab1:
fig_bar = px.bar(
filtered_df.sort_values("人口(万人)", ascending=True),
x="人口(万人)",
y="都道府県",
color="地方",
orientation="h",
title="都道府県別人口",
text="人口(万人)",
color_discrete_sequence=px.colors.qualitative.Set2
)
fig_bar.update_layout(height=400, plot_bgcolor="white")
st.plotly_chart(fig_bar, use_container_width=True)with tab2:
fig_scatter = px.scatter(
filtered_df,
x="面積(km²)",
y="人口(万人)",
size="人口密度(人/km²)",
color="地方",
hover_name="都道府県",
title="面積 vs 人口(バブルサイズ=人口密度)",
color_discrete_sequence=px.colors.qualitative.Set2
)
fig_scatter.update_layout(height=400, plot_bgcolor="white")
st.plotly_chart(fig_scatter, use_container_width=True)with tab3:
fig_pie = px.pie(
filtered_df,
values="人口(万人)",
names="都道府県",
title="人口の割合",
color_discrete_sequence=px.colors.qualitative.Set2
)
fig_pie.update_layout(height=400)
st.plotly_chart(fig_pie, use_container_width=True)============================================
データテーブル(折りたたみ)
============================================
with st.expander("📋 生データを表示"):
st.dataframe(filtered_df, use_container_width=True)# CSVダウンロードボタン csv = filtered_df.to_csv(index=False).encode("utf-8-sig") st.download_button( label="📥 CSVダウンロード", data=csv, file_name="filtered_data.csv", mime="text/csv" )
コードのポイント解説
① st.set_page_config() は必ず最初に書く
ページタイトル、アイコン、レイアウトの設定です。layout="wide" にするとワイド表示になり、ダッシュボード向きになります。この関数はスクリプトの一番最初(importの直後)に書く必要があります。
② @st.cache_data でデータをキャッシュ
Streamlitは操作のたびにスクリプト全体を再実行しますが、@st.cache_data を付けた関数は初回だけ実行され、2回目以降はキャッシュされた結果を返します。データの読み込みやAPIコールなど、重い処理に付けましょう。
@st.cache_data
def load_data():
# この中の処理は初回だけ実行される
df = pd.read_csv("big_data.csv")
return df
③ st.sidebar でフィルタをサイドバーに配置
with st.sidebar: ブロックの中に書いたUI部品は、左側のサイドバーに表示されます。フィルタやオプションをサイドバーに入れると、メインエリアが広く使えます。
④ st.columns() で横並びレイアウト
st.columns(4) で4列のレイアウトを作り、KPI(重要指標)を横に並べています。数字を引数に渡すと等幅になりますが、st.columns([3, 1]) のようにリストを渡すと幅を指定できます。
⑤ st.tabs() でグラフをタブ切り替え
複数のグラフをタブで整理できます。ページが縦に長くなりすぎるのを防げます。
5. デプロイする(60分)
作ったアプリを世界中からアクセスできるようにしましょう。Streamlit Community Cloudを使えば、完全無料でデプロイできます。
必要なもの
- GitHubアカウント(無料)
- Streamlit Community Cloudアカウント(無料・GitHubで登録)
📌 GitHubアカウントをまだ持っていない方は: 「GitHub Education 申請ガイド (外部リンク)」を参照してください。学生なら無料でGitHub Proが使えます。
Step 1:GitHubにリポジトリを作成
- github.com (外部リンク) にログイン
- 右上の「+」→「New repository」をクリック
- リポジトリ名を入力(例:
ddash-hacks-dashboard) - 「Public」を選択(Community Cloudの無料プランではPublicリポジトリが必要)
- 「Add a README file」にチェック
- 「Create repository」をクリック
Step 2:必要なファイルをアップロード
リポジトリに以下の3つのファイルをアップロードします:
① app.py(アプリ本体)
セクション4で作ったコードがそのまま app.py です。
② requirements.txt(使用ライブラリの一覧)
streamlit
pandas
plotly
requests
💡 ポイント: requirements.txt はStreamlit Community Cloudが「どのライブラリをインストールすればいいか」を知るための設定ファイルです。app.py の中で import しているライブラリを書き出してください。ただし、json、io など Python標準ライブラリは書く必要はありません。
③ .streamlit/config.toml(テーマ設定・任意)
アプリの見た目をカスタマイズしたい場合に作成します。なくても動きます:
[theme]
primaryColor = "#4F8BF9"
backgroundColor = "#FFFFFF"
secondaryBackgroundColor = "#F0F2F6"
textColor = "#262730"
font = "sans serif"
ファイルのアップロード方法:
GitHub上で「Add file」→「Upload files」からドラッグ&ドロップでアップロードできます。ただし .streamlit/config.toml のようにフォルダの中にファイルを作る場合は、「Add file」→「Create new file」を選び、ファイル名に .streamlit/config.toml と入力するとフォルダが自動的に作られます。
最終的なリポジトリの構成:
ddash-hacks-dashboard/
├── app.py ← アプリ本体
├── requirements.txt ← ライブラリ一覧
├── .streamlit/
│ └── config.toml ← テーマ設定(任意)
├── data/ ← CSVデータ(任意)
│ └── population.csv
└── README.md
Step 3:Streamlit Community Cloudにデプロイ
- share.streamlit.io (外部リンク) にアクセス
- 「Continue with GitHub」でGitHubアカウントと連携してログイン
- 右上の 「Create app」 をクリック
- 以下を入力:
- Repository: 先ほど作ったリポジトリを選択(例:
your-username/ddash-hacks-dashboard) - Branch:
main - Main file path:
app.py - App URL(任意): 好きなサブドメインを入力(例:
ddash-hacks-demo)
- Repository: 先ほど作ったリポジトリを選択(例:
- 「Deploy!」 をクリック
数分待つと、アプリが公開されます。URLは以下のような形式です:
https://ddash-hacks-demo.streamlit.app/
このURLをパワポに貼ったり、審査員に共有するだけでデモができます!
デプロイ時のよくあるエラーと対処法
| エラー | 原因 | 対処法 |
|---|---|---|
| ModuleNotFoundError | requirements.txt にライブラリが書かれていない | requirements.txt にライブラリ名を追加 |
| FileNotFoundError | CSVなどのデータファイルがリポジトリにない | データファイルもGitHubにアップロードする |
| アプリが表示されない | app.py のパスが間違っている | デプロイ設定の「Main file path」を確認 |
| 日本語が文字化け | CSVの読み込み時にencodingが指定されていない | pd.read_csv("data.csv", encoding="utf-8-sig") |
知っておくべき制限事項
- スリープ: 約1時間アクセスがないとアプリがスリープ状態になります。再アクセスすると自動で起動しますが、起動に30秒〜1分程度かかります
- リソース上限: 無料プランではメモリ1GB程度。巨大なデータセットの読み込みには注意
- 秘密情報: APIキーなどはコードに直接書かず、Streamlit Community Cloudの「Secrets」機能を使ってください
6. デザインを整える
カラーテーマの変更
.streamlit/config.toml でアプリ全体の色を変更できます。いくつかのおすすめテーマを紹介します:
同志社カラー(パープル系)
[theme]
primaryColor = "#6A1B9A"
backgroundColor = "#FFFFFF"
secondaryBackgroundColor = "#F3E5F5"
textColor = "#1A1A2E"
font = "sans serif"
クールブルー系
[theme]
primaryColor = "#1E88E5"
backgroundColor = "#FFFFFF"
secondaryBackgroundColor = "#E3F2FD"
textColor = "#0D1B2A"
font = "sans serif"
ダークモード
[theme]
primaryColor = "#FF6B6B"
backgroundColor = "#0E1117"
secondaryBackgroundColor = "#262730"
textColor = "#FAFAFA"
font = "sans serif"
レイアウトのTips
2カラムレイアウト(左にグラフ、右に説明)
col_chart, col_text = st.columns([2, 1])with col_chart:
st.plotly_chart(fig, use_container_width=True)
with col_text:
st.subheader("分析結果")
st.write("東京都の人口は他の都道府県と比較して突出しており...")
KPIカード風のデザイン
# st.metric を columns と組み合わせると、KPIカード風になる
col1, col2, col3 = st.columns(3)
col1.metric("総人口", "4,476万人", "-1.2%")
col2.metric("平均人口密度", "2,841人/km²", "+0.3%")
col3.metric("対象地域数", "7", "")
自作CSVを使う場合のコード変更
セクション4の完成版コードでは、データを直接コード内に書いていました。自分のCSVデータを使う場合は、load_data() 関数を以下のように変更してください:
@st.cache_data
def load_data():
# GitHubリポジトリの data/ フォルダからCSVを読み込む
df = pd.read_csv("data/your_data.csv", encoding="utf-8-sig")
return df
CSVファイルはGitHubリポジトリの data/ フォルダにアップロードしてください。
ファイルアップロード機能を追加する
ユーザーが自分のCSVをアップロードして分析できるようにすると、審査員への印象がグッと上がります:
st.sidebar.divider() st.sidebar.subheader("📁 カスタムデータ") uploaded_file = st.sidebar.file_uploader("CSVをアップロード", type=["csv"])
if uploaded_file is not None:
# アップロードされたファイルを読み込む
try:
df = pd.read_csv(uploaded_file, encoding="utf-8-sig")
except UnicodeDecodeError:
df = pd.read_csv(uploaded_file, encoding="shift_jis")
st.success("✅ データを読み込みました!")
else:
df = load_data() # デフォルトデータを使用
7. 応用:気象庁APIとの連携
「Google Colab + pandasデータ分析入門 (外部リンク)」で学んだ気象庁APIを、Streamlitアプリに組み込む例です:
import requestsst.header("🌤 リアルタイム天気予報")
地域を選択
area_options = {
"京都府": "260000",
"大阪府": "270000",
"東京都": "130000",
"愛知県": "230000",
"福岡県": "400000"
}selected_area = st.selectbox("地域を選択", list(area_options.keys()))
area_code = area_options[selected_area]APIからデータを取得
@st.cache_data(ttl=3600) # 1時間キャッシュ(APIへの負荷を軽減)
def fetch_weather(code):
url = f"https://www.jma.go.jp/bosai/forecast/data/forecast/{code}.json (外部リンク)"
response = requests.get(url)
if response.status_code == 200:
return response.json()
return Noneforecast = fetch_weather(area_code)
if forecast:
time_series = forecast[0]["timeSeries"][0]
areas_data = time_series["areas"]
times = time_series["timeDefines"]for area in areas_data: st.subheader(f"📍 {area['area']['name']}") weathers = area.get("weathers", []) for i, time_str in enumerate(times): if i < len(weathers): st.write(f"**{time_str[:10]}** : {weathers[i]}")
else:
st.error("天気データの取得に失敗しました")
💡 ポイント: @st.cache_data(ttl=3600) の ttl=3600 は「3600秒(1時間)キャッシュを保持する」という意味です。これにより、同じ地域の天気予報を何度も取得するのを防ぎ、APIへの負荷を減らせます。
8. ハッカソンでの実践Tips
チーム内での役割分担
Streamlitアプリは以下のように分担できます:
| 役割 | 担当するもの |
|---|---|
| データ分析担当 | pandasでデータ加工、Plotlyでグラフ作成(「Google Colab + pandasデータ分析入門 (外部リンク)」の内容) |
| アプリ担当 | Streamlitのレイアウト、UI部品、デプロイ(この記事) |
| デザイン担当 | テーマ設定、パワポ作成 |
📌 全員がPythonを書ける必要はありません。 データ分析担当が作ったDataFrameとPlotlyグラフを、アプリ担当が st.dataframe() と st.plotly_chart() で表示するだけでOKです。
デバッグのコツ
# デバッグ用:変数の中身を確認
st.write("デバッグ:", df.head()) # DataFrameの表示
st.write("型:", type(df)) # 型の確認
st.json({"key": "value"}) # JSON表示
開発が終わったらデバッグ用のコードは削除するか、以下のようにフラグで制御してください:
DEBUG = False # デプロイ時は False に変更
if DEBUG:
st.write("デバッグ:", df.head())
パワポとの連携方法
審査ではパワポが提出物なので、Streamlitアプリの存在をパワポ内で効果的にアピールしましょう:
- スライドにURLを記載:
https://your-app.streamlit.app/をQRコードにして貼る - スクリーンショットを貼る: アプリの画面をキャプチャしてスライドに配置
- 操作動画を録画: 画面録画でアプリを操作している様子を撮影し、パワポに埋め込む
Streamlitアプリを「データ活用」として評価されるために
アプリが動くだけでは「データ活用」とは評価されません。審査員に伝えるべきは、データがそのアプリにとって不可欠である理由です。
Streamlit組は特にパターンB(データで「動く」を作る) と相性が良いです。アプリの中でデータがどう使われているか——入力→処理→出力の流れをパワポで明示しましょう。
- ✅ 「気象データをAPIで取得し、地域×時間帯の最適な観光ルートを自動提案する」→ データがなければ機能しない
- ❌ 「観光スポットの一覧をStreamlitで表示する」→ データがなくても成り立つ
考察の進め方の詳細は「Google Colab + pandasデータ分析入門 (外部リンク)」のセクション6を参照してください。
まとめ:この記事で学んだこと
| セクション | 学んだこと | 所要時間 |
|---|---|---|
| 1. Streamlitとは | Webアプリフレームワークの概要 | 5分 |
| 2. 環境準備 | Colab or ローカルでの実行方法 | 10分 |
| 3. 基本構文 | テキスト、データ、グラフ、ユーザー入力 | 20分 |
| 4. ダッシュボード | フィルタ・タブ・KPI付きの完成版 | 60分 |
| 5. デプロイ | GitHub + Community Cloud で公開 | 60分 |
| 6. デザイン | テーマ・レイアウト・応用機能 | 15分 |
| 7. API連携 | 気象庁APIとの組み合わせ | 10分 |
| 合計 | 約3時間 |
よく使うStreamlitコマンド早見表
| やりたいこと | コマンド |
|---|---|
| タイトル表示 | st.title("テキスト") |
| テキスト表示 | st.write("テキスト") |
| DataFrame表示 | st.dataframe(df) |
| Plotlyグラフ表示 | st.plotly_chart(fig, use_container_width=True) |
| KPI表示 | st.metric("ラベル", "値", "変化量") |
| ドロップダウン | st.selectbox("ラベル", ["A", "B"]) |
| 複数選択 | st.multiselect("ラベル", ["A", "B"]) |
| スライダー | st.slider("ラベル", 0, 100, 50) |
| チェックボックス | st.checkbox("ラベル") |
| ファイルアップロード | st.file_uploader("ラベル", type=["csv"]) |
| ダウンロードボタン | st.download_button("ラベル", data, "file.csv") |
| サイドバー | with st.sidebar: |
| カラムレイアウト | col1, col2 = st.columns(2) |
| タブ | tab1, tab2 = st.tabs(["タブ1", "タブ2"]) |
| 折りたたみ | with st.expander("ラベル"): |
| 区切り線 | st.divider() |
| データキャッシュ | @st.cache_data |
| 成功メッセージ | st.success("成功!") |
| エラーメッセージ | st.error("エラー!") |
次に読む記事
- 📊 Pythonは使わずにダッシュボードを作りたい → スプレッドシート + Looker Studio ノーコードダッシュボード入門 (外部リンク)
- 🔍 もっとデータの探し方を知りたい → オープンデータの探し方&使い方ガイド (外部リンク)
- 📋 審査基準を攻略したい → 審査基準攻略&PowerPoint提出ガイド (外部リンク)
- ⏰ 3日間の動き方を知りたい → 3日間タイムマネジメント戦略 (外部リンク)
- 🗺️ データ分析の全体像を知りたい → データ分析スタートガイド (外部リンク)
既存記事(今すぐ読める)

Shin Yamamoto
関連する記事 - 攻略法
攻略法
オープンデータの探し方&使い方ガイド
攻略法
スプレッドシート + Looker Studio ノーコードダッシュボード入門
攻略法
Google Colab + pandasデータ分析入門 〜コピペで動く、はじめてのデータ分析〜
攻略法
審査基準攻略&PowerPoint提出ガイド
攻略法
3日間タイムマネジメント戦略
攻略法
チーム発表〜本番前日までの事前準備チェックリスト
攻略法
「データ分析」スタートガイド|DDASH Hacks 2025
攻略法
Cesium.js × PLATEAU 3D Tiles 〜Webブラウザで京都の3D建物を表示しよう〜
攻略法
Unity MCP×PLATEAU SDKで加速するAI駆動開発ガイド
攻略法
PLATEAU×Unity 2日間サバイバルガイド 〜ハッカソン〜
攻略法
PLATEAUの過去受賞作品をまとめてみた「アイデア→実装パターン集」
攻略法
京都市の都市課題とは?〜PLATEAU HACK 2025 初心者向けガイド〜
攻略法
GitHubでチーム開発の流れを体験してみよう! - ハンズオンガイド
攻略法
AIコーディング支援ツールの概要と活用法
攻略法
2025年版 GitHub Education 申請手順
攻略法
「Supabase」の概要と環境構築。初心者向けガイド
攻略法
実写型デモ動画の制作ガイド
攻略法
ngrokの使い方 - デプロイが間に合わなかった時の最終手段
攻略法
スクリーンショット型デモ動画の制作ガイド
攻略法
Craft Stadiumの評価制度〜動画を提出する理由〜