6.7.31
UpSetプロットで集合の交差を正確に比較
まとめ
- 3つ以上の集合の交差パターンを行列+棒グラフで可視化し、ベン図の限界を超える。
upsetplotライブラリで MultiIndex のvalue_countsを渡すだけで描画できる。- スキルセット分析、機能の組み合わせ、遺伝子セットの重複など「何と何が同時に該当するか」を知りたいときに使う。
UpSet プロットはベン図の代替として 2014 年に提案された手法。集合の交差パターンを下部の接続マトリクスで示し、上部の棒グラフで各パターンの件数を比較する。5 セット以上でもパターンを正確に読み取れる。
| |

読み方のポイント #
- 上部の棒グラフの高さが各交差パターンの件数を表す。もっとも多いパターンがどの組み合わせかを最初に確認する。
- 下部のマトリクスで黒い点が入っているスキルが「同時に持っている」組み合わせ。点が 1 つだけならそのスキル単独の保有者数。
- 右側(または左側)のバーは各スキル単体の保有者数(セットサイズ)を示す。
いつ使うか #
- 適している場面: 3〜7 セットの交差パターンを定量的に比較したいとき。ベン図では 4 セット以上で面積が不正確になるが、UpSet プロットは正確な件数比較が可能。
- 不向きな場面: セット数が 2 以下なら通常のベン図で十分。セット数が 15 以上になるとパターン数が爆発し、意味のある読解が困難。
- 代替手段: 集合の包含関係だけ見たいならオイラー図。セット間の流入・流出にはサンキーダイアグラムが適切。
よくある失敗パターン #
- パターン数の爆発: 5 セットで最大 $2^5 = 32$ パターンが出現するため、
min_subset_sizeで少数パターンをフィルタしないと図が横に伸びすぎる。 - ソート順の不適切: デフォルトでカーディナリティ(件数)順にソートされるが、度数(セットの組み合わせ数)順にした方が見やすい場合もある。
sort_byパラメーターで切り替える。