6.7.28
ファセットグリッドでカテゴリ別に小さな複数図を並べる
まとめ
- カテゴリ変数でデータを分割し、同じチャートを格子状に並べて条件ごとの違いを比較する。
- seaborn の
FacetGridやrelplot/catplotで行×列のグリッドを自動生成できる。 - 「重ねると読みにくいが、分けると比較しやすい」場面で Small Multiples パターンとして広く使われる。
ファセットグリッド(Small Multiples)は、同一のチャートをカテゴリで分割して並べるパターン。Edward Tufte が提唱した原則で、色の区別に頼らず条件間の比較が可能になる。
| |

読み方のポイント #
- 各パネルの形状を横断的に比較する。季節性のピークやトレンドの違いがパネル間で際立つ。
- Y 軸を共有(
sharey=True)しているため、パネル間のスケール比較が正確にできる。 - 色は統一し、パネルのタイトルで条件を示すのが Small Multiples の基本原則。
いつ使うか #
- 適している場面: カテゴリが 4〜12 程度で、重ねると線やバーが混雑するとき。時系列・散布図・ヒストグラムなど任意のチャートに適用できる。
- 不向きな場面: カテゴリが 20 以上あるとパネルが多すぎて一覧性が落ちる。2 カテゴリだけなら重ねて描いた方がコンパクト。
- 代替手段: カテゴリが多い場合はハイライト+グレーアウトで 1 枚に収める手法。対話的に絞り込むなら Plotly の
facet_col。
よくある失敗パターン #
- Y 軸スケールの不統一:
sharey=Falseのままだと、各パネルのスケールが異なり誤った比較を招く。比較目的なら必ずsharey=True(またはsharex=True)にする。 - パネルタイトルの欠落: タイトルがないとどのパネルがどのカテゴリか判別できない。
set_titles("{col_name}")を忘れずに設定する。
- 複数ラインの推移比較 — 1 枚に重ねる方式
- スパークラインパネル — よりコンパクトなミニチャート群
- リッジラインプロット — 分布を段状に並べる