LoginSignup
8
6

More than 3 years have passed since last update.

ベン図の限界とUpSet

Last updated at Posted at 2020-12-03

ベン図とは

複数の要素を持つセット間の要素の重複を可視化するものだ。
Pythonとmatplotlib_venn で例を示す。

from matplotlib_venn import venn3
set1 = set(['1', '2', '3', '5', '7', '8', '11', '12', '13'])
set2 = set(['1', '2', '4', '5', '10'])
set3 = set(['1', '5', '6', '7', '8', '9', '10', '12', '13'])
venn3([set1, set2, set3], ('Set1', 'Set2', 'Set3'))

image.png

ベン図の問題

  • 「セット間で重なっている面積」は「セット間要素の重複数」を必ずしも反映しない(またその実装がかなり難しい[というかできない?])
  • セット数が多くなると破綻する

ベン図に替わるUpSet

とにかくUpSetの実例を示す。
RとUpSetRを用いる。

library(UpSetR)
listInput <- list(one = c(1, 2, 3, 5, 7, 8, 11, 12, 13), two = c(1, 2, 4, 5, 
    10), three = c(1, 5, 6, 7, 8, 9, 10, 12, 13))
upset(fromList(listInput), order.by = "freq")

image.png

UpSetの図が示すものの説明は不要だろう(先程のベン図と見比べてもらえれば何が何と対応しているかわかるだろう)。
逆に言うと言葉が要らないのが可視化ってもんか。

UpSetの歴史と今

UpSetの可視化手法(アイデア)が論文(DOI: 10.1109/TVCG.2014.2346248)として公開されたのは2014年のようだ。このようなシンプルな可視化手法がこんな最近まで出なかったことに驚きを感じる人がいるかもしれない。「図を組み合わせて何かを表現する」ってのが革新的で、以前にはこの発想が無かったのかもしれない。バイオインフォではこの図は重宝するケースが多く、多くの論文で活用されているようだ。ちなみに前述DOIの論文の引用数は656[2020/12/04 Google調べ]でかなりのもんである。

結論

可視化でやれることはアイデア次第でまだまだある。

以上

8
6
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
8
6