共通数を示すのに便利なベン図があります。多くは2から4変数の共通数を示すために円を用いての表現が多いと思います。紹介パッケージは円だけでなく四角などを用い、最大9変数のベン図が作成できます。
パッケージバージョンは3.1.0.9000。実行コマンドはwindows 11のR version 4.1.2で確認しています。
パッケージのインストール
下記、コマンドを実行してください。
#パッケージのインストール
if(!require("devtools", quietly = TRUE)){
install.packages("devtools");require("devtools")
}
if(!require("BiocManager", quietly = TRUE)){
install.packages("BiocManager");require("BiocManager")
}
BiocManager::install(c("RBGL","graph"))
devtools::install_github("js229/Vennerable")
実行コマンド
詳細はコメント、パッケージのヘルプを確認してください。
#パッケージの読み込み
library("Vennerable")
###データ例の作成#####
TestData <- list(Group1 = sample(paste0("Group", 1:2000), 1300, replace = FALSE),
Group2 = sample(paste0("Group", 1:2000), 800, replace = FALSE),
Group3 = sample(paste0("Group", 1:600), 400, replace = FALSE),
Group4 = sample(paste0("Group", 1:1900), 700, replace = FALSE),
Group5 = sample(paste0("Group", 1:600), 100, replace = FALSE),
Group6 = sample(paste0("Group", 1:300), 100, replace = FALSE),
Group7 = sample(paste0("Group", 1:1500), 100, replace = FALSE),
Group8 = sample(paste0("Group", 1:300), 100, replace = FALSE),
Group9 = sample(paste0("Group", 1:1500), 100, replace = FALSE))
#######
#ベン図を作成:Vennコマンド
#ラベル名の指定:SetNamesオプション
#変数の数で大きさを指定:Weightオプション;TRUEで自動
DemoPlot <- Venn(SetNames = c("TEST1", "TEST2"),
Weight = c('01' = 3, '11' = 10, '10' = 20))
#プロット
plot(DemoPlot)
###プロット体裁の調整#####
#プロットスタイルを指定:typeオプション
#2変数;"circles","squares"
plot(DemoPlot, doWeights = FALSE, type = "circles")
plot(DemoPlot, doWeights = FALSE, type = "squares")
#3変数;"triangles","circles","squares"
plot(Venn(TestData[1:3]), doWeights = FALSE, type = "triangles")
plot(Venn(TestData[1:3]), doWeights = FALSE, type = "circles")
plot(Venn(TestData[1:3]), doWeights = FALSE, type = "squares")
#3変数以上:"squares", "ChowRuskey", "AWFE"
ChoiceType <- c("squares", "ChowRuskey", "AWFE")
#プロット
for(i in seq(length(ChoiceType))){
plot(Venn(TestData[1:(i + 3)]), doWeights = FALSE, type = ChoiceType[i])
}
#参考:9変数のプロット:"battle"
plot(Venn(TestData[1:9]), doWeights = FALSE, type = "battle")
########
#0のエリアを表示しない:doEulerオプション
#表示しない:TRUE
DemoPlot0 <- Venn(SetNames = c("TEST1", "TEST2"),
Weight = c('01' = 3, '11' = 10, '10' = 0))
#プロット
plot(DemoPlot0, doEuler = TRUE)
出力例
2変数
・squares
3変数
・triangles
・circles
・squares
3変数以上
・squares
・ChowRuskey
・AWFE
9変数
・battle
・doEulerオプション
少しでも、あなたの解析が楽になりますように!!