Shikata Ga Nai

Private? There is no such things.

21. データの可視化応用 〜ダッシュボードを作ってみよう〜

Hello there, ('ω')ノ

📌 1. ダッシュボードとは?

ダッシュボードとは、データを視覚的に整理し、リアルタイムで操作できるインターフェース です。

データの全体像を直感的に把握できる
インタラクティブに操作でき、ユーザーが自由に分析できる
リアルタイムデータと連携できる(売上・アクセス数・市場動向など)

📌 ダッシュボードの活用例

用途 説明
ビジネスの売上分析 期間別の売上推移、商品カテゴリ別の売上、顧客層の分析
マーケティング分析 SNSの投稿分析、クリック率のトラッキング、キャンペーン効果の可視化
Kaggleコンペのデータ分析 モデルの精度比較、特徴量の影響度の可視化

📌 2. Streamlit を使ってダッシュボードを作成

Streamlit(ストリームリット)は、Pythonだけで簡単にWebアプリを作れるライブラリ です!

コードを書く感覚でダッシュボードを作れる!
ボタン・スライダー・フィルターなどのUIを簡単に追加!
データフレームやグラフをリアルタイム表示!

✅ (1) Streamlitのインストール

まずは Streamlit をインストールします。

pip install streamlit pandas matplotlib plotly

✅ (2) シンプルなダッシュボードを作成

app.py という Python ファイルを作成し、以下のコードを記述します。 ※Google Colab で streamlit を直接実行することはできません。

import streamlit as st
import pandas as pd
import plotly.express as px

# タイトル
st.title("売上ダッシュボード")

# データの読み込み
@st.cache_data  # キャッシュを有効にする(動作を高速化)
def load_data():
    df = pd.read_csv("sales_data.csv")  # 売上データ
    return df

df = load_data()

# データの表示
st.dataframe(df.head())

# グラフ(売上の推移)
fig = px.line(df, x="Date", y="Sales", title="売上推移")
st.plotly_chart(fig)

# 地域ごとの売上
fig2 = px.bar(df, x="Region", y="Sales", color="Region", title="地域別売上")
st.plotly_chart(fig2)

✅ (3) ダッシュボードを実行

streamlit run app.py

ブラウザで http://localhost:8501 にアクセスすると、ダッシュボードが表示されます! 🚀

売上データの一覧が表示される!
折れ線グラフで売上推移を可視化!
地域別の売上を棒グラフで比較!


📌 3. インタラクティブなフィルターを追加

Streamlit では、ユーザーが フィルターを操作してデータを分析 できます。
例えば、「特定の地域の売上だけを表示する」フィルターを追加してみましょう。

# 地域を選択できるドロップダウンメニュー
region = st.selectbox("地域を選択", df["Region"].unique())

# 選択された地域のデータを表示
filtered_df = df[df["Region"] == region]

# フィルタ後のデータ表示
st.dataframe(filtered_df)

# フィルタ後の売上推移グラフ
fig = px.line(filtered_df, x="Date", y="Sales", title=f"{region}の売上推移")
st.plotly_chart(fig)

ユーザーがドロップダウンで地域を選択できる!
選択した地域の売上データが表示される!
選択した地域の売上推移グラフが動的に変わる!

インタラクティブな操作で、より深いデータ分析が可能!


📌 4. KPI(重要指標)を表示

ダッシュボードには、売上や利益のKPI(Key Performance Indicator) を表示すると便利です。

# 売上の合計と平均
total_sales = df["Sales"].sum()
average_sales = df["Sales"].mean()

# KPIを表示
st.metric(label="総売上", value=f"{total_sales:,} 円")
st.metric(label="平均売上", value=f"{average_sales:.2f} 円")

総売上と平均売上がダッシュボードに表示される!
重要なKPIを一目で確認できる!


📌 5. ヒートマップで売上の傾向を分析

ヒートマップを使うと、売上の時間的な傾向 を視覚化できます。

import seaborn as sns
import matplotlib.pyplot as plt

# 日付を年・月・曜日に分割
df["Year"] = pd.to_datetime(df["Date"]).dt.year
df["Month"] = pd.to_datetime(df["Date"]).dt.month
df["Weekday"] = pd.to_datetime(df["Date"]).dt.day_name()

# 月ごとの売上ヒートマップ
pivot_table = df.pivot_table(index="Month", columns="Year", values="Sales", aggfunc="sum")

# ヒートマップを作成
plt.figure(figsize=(8, 5))
sns.heatmap(pivot_table, annot=True, fmt=".0f", cmap="coolwarm")
st.pyplot(plt)

月ごとの売上の変化を視覚化!
どの月に売上が伸びているか、一目で分かる!


📌 6. 地図データを表示

売上データに 緯度・経度(Latitude, Longitude) を追加すれば、地図上にプロットできます!

# 地図を表示
st.map(df[["Latitude", "Longitude"]])

店舗ごとの売上データをマップで可視化!
地域ごとの売上の偏りを発見!


📌 7. Streamlitで作れるダッシュボードの応用例

📌 他にも、こんなダッシュボードを作れます!

用途
株価分析 株価の時系列グラフ、移動平均、ボラティリティの可視化
マーケティングダッシュボード SNS投稿数の推移、クリック率の分析
Kaggleコンペのモデル評価 精度の比較、特徴量の重要度グラフ

あらゆるデータ分析に応用可能! 🚀


🎯 まとめ

Streamlitを使うと、簡単にダッシュボードが作れる!
Plotly・Seabornでグラフを作成し、データを可視化!
フィルター・KPI・ヒートマップ・地図を追加して、インタラクティブな分析が可能!
ビジネス・マーケティング・データサイエンスに応用できる!

Best regards, (^^ゞ