06.7.20
スパークラインパネルで複数指標をミニ表示
plt.subplots(2, 3) で格子を作り、各セルに ax.plot と薄い ax.fill_between を描き、Y 軸目盛りと 3 辺の枠線を消して最新値だけを ax.text で添えます。読み終えると、UU から NPS までの 6 指標が 12 か月で緩やかに上昇する形を一覧し、sharex=True と最新値ラベルの役割を理解したうえで自分の KPI パネルを作れるようになります。直感 #
ダッシュボードのトップ画面で、UU・PV・CVR・注文数・解約率・NPS の 6 指標について「先月から上向きか下向きか」だけを知りたいとします。6 枚の本格的な折れ線グラフを並べると画面に収まらず、目盛りや凡例に視線が奪われます。スパークラインは Edward Tufte が「文章の中に埋め込める、単語サイズのグラフ」として提案した形で、軸も目盛りもなく線の形だけを残します。それを 2 × 3 の格子に並べれば、各指標の傾きと最新値を 1 画面で確認でき、詳しい分析は気になった指標のページで行う、という役割分担ができます。
Python で描く #
次のコードは、基準値の異なる 6 指標の 12 か月分を「緩やかな上昇 + 基準値の 5% のノイズ」で作り、2 × 3 の格子に 1 指標ずつミニ折れ線を描きます。目盛りと枠線を消し、最新値をラベルで添えます。
| |

実行結果の読み方 #
6 枚のパネルはどれも左から右へ緩やかに上がる形で、右端の数字が 12 月の最新値です。パネルごとに Y 軸の範囲が違うので、線の高さや傾きの角度を別の指標と比べてはいけません。「UU と PV の形が似ているか」「解約率だけ別の動きをしていないか」のように形のパターンを見比べるのがこの図の読み方です。ノイズを基準値の 5% にしているため、どのパネルも同程度のギザつきになっており、実データで 1 枚だけギザつきが大きければ、その指標の不安定さが形として目に入ります。
使いどころと落とし穴 #
スパークラインパネルは、ダッシュボードのトップ画面や表の中に 6〜20 個の指標の傾向を省スペースで埋め込むときに使います。軸がないので系列間の絶対値の比較には使えず、「PV は UU の 3 倍」といった読み取りが必要なら、同じスケールのファセットグリッド(sharey=True)に切り替えてください。パネルごとに Y 軸が自動調整されることを読者に伝えないと、CVR の 0.5 ポイントの上昇が PV の 10 の上昇と同じ傾きに見えて誤読を招くので、最新値のラベルに加えて前月比や前年比の数値を隣に表示します。トレンド以外の情報(最小・最大・現在値)を数字で併記しないと、スパークラインだけでは定量的な判断ができません。
- スパークライン — 軸を省いたミニ折れ線で推移表示
- 複数ラインの推移比較 — 複数系列を同一軸で比較
- ホライゾンチャート — 色帯に折りたたみ省スペースで変動表現