R を使ったベン図の作り方
UB3/informatics/r/r_venn_diagram
このページの最終更新日: 2024/11/10- 概要: ベン図とは
- VennDiagram パッケージを使う方法
- パッケージの準備
- データの準備
- ベン図に関係するデータを出力する方法
- 「ベン図の重なり」に対する統計検定
広告
概要: ベン図とは
ベン図 Venn diagram は、複数の集合の関係を視覚的に示した次のような図である。
上記の図はかなり基本的な 3 群のベン図だが、図の中に情報が入っているパターンも多い。下の図には pie chart が入っている。
このページでは、R を使ってベン図を作る方法を説明する。
VennDiagram パッケージを使う方法
パッケージの準備
ググって最初に見つかったのが Ref. 1 の VennDiagram パッケージを使う方法だった。以下のようにインストールして読み込む。このあたりがよくわからない場合は、R のパッケージ を参照のこと。
library("VennDiagram")
Loading required package: grid
Loading required package: futile.logger
という表示が出て、パッケージが読み込まれた。これでパッケージの準備は完了。
データの準備
このパッケージに含まれる venn.diagram 関数を使うのだが、この関数の入力は、複数の文字列を含むリストである。
実例として、以下のデータでベン図を書いてみる。香川県民と大阪県民を比較すると、きつねうどんとラーメンのみが重複している。この 2 つだけが重なったベン図ができるはずである。
Osaka=c("きつねうどん","お好み焼き","たこ焼き","ラーメン","焼肉","ステーキ")
typeof(Kagawa)
[1] "character" # 一応、文字列であることを確認
typeof(Osaka)
[1] "character"
list=list(K=Kagawa, O=Osaka)
作図
filename |
必須。filename=a.png のように " " をつけ忘れると、Error in venn.diagram(list, filename = a.png) : object 'a.png' not found というエラーになる。 |
fill |
|
alpha |
透過率 |
cex |
数字ラベルのフォントサイズを指定。 |
cat.cex |
カテゴリー名のフォントサイズを指定。 |
ベン図に関係するデータを出力する方法
ベン図は複数のリストを比較し、その重複の程度を視覚化する手段である。比較するリストから、共通のデータを抽出したり、片方に特有のデータを抽出したりする方法もここに示しておく (2)。
A, B という 2 つのオブジェクトがあるとき、intersect および setdiff を使い、以下のようにする。
- 共通のものを抽出: intersect(A,B)
- A のみに含まれるものを抽出: setdiff(A,B)
- B のみに含まれるものを抽出: setdiff(B,A)
「ベン図の重なり」に対する統計検定
phyper(q, m, n, k, lower.tail = FALSE, log.p = FALSE)広告
References
- R package"VennDiagram"でベン図を書く. Link: Last access 2020/01/22.
- R 2つのリストを比較する関数 (intersect、setdiff) の紹介 Link: Last access 2020/01/25.
- Rによるベン図の描画. Link: Last access 2022/07/26.
コメント欄
サーバー移転のため、コメント欄は一時閉鎖中です。サイドバーから「管理人への質問」へどうぞ。