共通数を示すのに便利なベン図があります。多くは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オプション
少しでも、あなたの解析が楽になりますように!!