venndiagram
05.07.2022

【R】Rでベン図を描く(基礎編)

ずっと「かっこいいな〜!」と思っていた「ベン図」をRで描く機会がやってきたのでそのことを。 ベン図とはこんな感じの図、グループとグループとの間に共通しているものがどのくらいあるのかが分かりやすく表現できるもの。 今回は必要最低限の基本メモになりますが、とても便利そうなので使えるようになるといいと思います!! なぜベン図が必要なのか 今回私は、あるプロジェクトで使っている6つのデータにどのくらいの人たちがどのデータに入っているのか、同じ人が別のデータにも入っているのかなどを知りたかったので、次のような表をまず作りました。 study1 study2 study3 study4 study5 study6 study1 1000 0 0 0 9 0 study2 0 23000 0 171 4 0 study3 0 0 2521 0 0 0 study4 0 171 0 1365 0 0 study5 9 4 0 0 1871 3 study6 0 0 0 0 3 21392 この表から、例えば study1に参加した人の中でstudy5にも参加した人が9人いる study2に参加した人の中でstudy4にも参加した人が171人、study5にも参加した人が4人いる ということがわかります。でも分かりづらい。 そこでベン図をもう一度見ると、そういった情報がもっと感覚的に分かるようになっています。(後述しますが、今回はstudy3〜5は諸事情で統合したベン図になっているので、上記の例2はstudy2に参加した人の中でstudy3,4,5のどれかに参加した人が175人いる、というようなベン図になっています。) Rで使うライブラリ Rでベン図を描く場合、いろんな方法があるみたいなのですが、大概はVennDiagramというライブラリで事足りそうな気がします。今回このページに載せているベン図もこのライブラリで作成しました。 公式のマニュアル(英語)はこちらから参照できます:https://cran.r-project.org/web/packages/VennDiagram/VennDiagram.pdf いろいろ描いてあるけど、最初の取り掛かりとしては下記の方法で良さそう。慣れてきて他にも追加したいことがあったりカスタマイズしたいことがでてきたらこのマニュアルやらネット情報やらで順次グレードアップしていこうと思います。 VennDiagramのインストール VennDiagramがまだRにインストールされていない場合は下記のコマンドでインストール。既にこのライブラリを持っている場合はこのステップは飛ばします。 install.packages("VennDiagram") VennDiagramを使う準備 下記のコマンドでVennDiagramを使える状態にします。 library(VennDiagram) ベン図を描くコード 上記のコードでライブラリを読み込んだ後、こちらのコードで基本的なベン図が描けます。 venn.diagram(data, filename="venn.png", imagetype="png", category.names = c("study1", "study2", "study3"), fill=c(2,3,4)) dataは数字や文字列のリストの形式のもの(後述) filenameを指定する(保存したいファイル名) imagetypeは任意、デフォルトはtiff。.pngにしたい場合はpngを指定。 category.namesは必須、dataのそれぞれのグループの名前を入れる(例えばstudy1、study2、study3など) fillで色の指定。このfillの部分を飛ばすとモノクロのベン図になる(後述)。 ここで使うdataは、数字や文字列のリストの形式になっている必要があります。形式が合っていれば、"data" という名前じゃなくても何でもOK。 例えば、下記の「data」がそれにあたります。 # a,b,cに数字を入れる a …