サンキーダイアグラムでフロー分岐を把握

Visualize

サンキーダイアグラムでフロー分岐を把握

作成日: 最終更新: 読了時間: 1 分

顧客がチャネルを経由して別のアクションへ流れる状況は、サンキーダイアグラムで枝分かれを示すと分かりやすくなります。インタラクティブに探索したい場合は Plotly の go.Sankey が便利です。ホバーでフロー量を確認でき、HTML としてそのまま共有できます。

import plotly.graph_objects as go

labels = [
    "流入",
    "無料登録",
    "カート離脱",
    "FAQ閲覧",
    "直帰",
    "有料化",
    "再来訪",
    "離脱",
]

sources = [0, 0, 0, 0, 1, 1, 1]
targets = [1, 2, 3, 4, 5, 6, 7]
values = [420, 280, 200, 100, 260, 100, 60]

fig = go.Figure(
    data=[
        go.Sankey(
            arrangement="snap",
            node=dict(
                pad=18,
                thickness=18,
                line=dict(color="rgba(0,0,0,0.2)", width=1),
                label=labels,
                color=[
                    "#4C78A8",
                    "#F58518",
                    "#E45756",
                    "#72B7B2",
                    "#54A24B",
                    "#EECA3B",
                    "#B279A2",
                    "#FF9DA6",
                ],
            ),
            link=dict(
                source=sources,
                target=targets,
                value=values,
                color=[
                    "rgba(76,120,168,0.45)",
                    "rgba(229,87,86,0.45)",
                    "rgba(114,183,178,0.45)",
                    "rgba(84,162,75,0.45)",
                    "rgba(245,133,24,0.45)",
                    "rgba(238,202,59,0.45)",
                    "rgba(178,121,162,0.45)",
                ],
            ),
        )
    ]
)

fig.update_layout(
    title=dict(text="来訪後の顧客フロー(Plotly Sankey)", x=0.5, font=dict(size=18)),
    font=dict(size=12, color="#222"),
    margin=dict(l=10, r=10, t=40, b=10),
)

# ブラウザで共有できるインタラクティブ HTML
fig.write_html("static/images/visualize/advanced/sankey-diagram.html", include_plotlyjs="cdn")

# ドキュメント用の静的画像 (kaleido のインストールが必要: pip install kaleido)
fig.write_image("static/images/visualize/advanced/sankey-diagram.png", scale=2)

plt.show()

Plotlyで描画したサンキーダイアグラムで顧客フローを可視化した図

読み方のポイント #

  • 幹の太さがフロー量を表すので、どの分岐で大きく減っているかが直感的に把握できます。
  • 連結している枝をたどることで、特定の出口(例: 有料化)までのボトルネックを追跡できます。
  • 分岐が多すぎる場合は、主要経路に絞って描くと読みやすさが保てます。