как получить вложенную и перекрывающуюся диаграмму Венна с R? - PullRequest
1 голос
/ 21 июня 2019

Я хотел бы получить красивую визуализацию моих данных эстетичным способом, но я борюсь с дизайном диаграммы Венна, я рассчитал перекрытия из фрейма данных, и теперь я пытаюсь собрать их вместе.all_pep = 13584, pep_C = 1543, Car = 1201, NEM = 364 Car & NEM = 24 «Car» и «NEM» являются подгруппой «pep_C», а также «all_pep», они имеют общую часть 24, всеподгруппы принадлежат "all_pep"

это то, чего я хотел бы достичь https://filebin.net/x5a5a695jp0dy68q

library(grid)
library(futile.logger)
library(VennDiagram)

draw.quad.venn(area1=13584, area2=1543, area3=1201, area4=364,     n12=1543, n13=1201, n14=364, n23=1201, n24=364,
           n34=24, n123=1201, n124=364, n134=24, n234=24, n1234=24, category = rep("",
          4), lwd = rep(2, 4), lty = rep("solid", 4), col =
             rep("black", 4), fill = NULL, alpha = rep(0.5, 4),
           label.col = rep("black", 15), cex = rep(1, 15),
           fontface = rep("plain", 15), fontfamily = rep("serif",
            15), cat.pos = c(-15, 15, 0, 0), cat.dist = c(0.22,
            0.22, 0.11, 0.11), cat.col = rep("black", 4), cat.cex
           = rep(1, 4), cat.fontface = rep("plain", 4),
           cat.fontfamily = rep("serif", 4), cat.just =
             rep(list(c(0.5, 0.5)), 4), rotation.degree = 0,
           rotation.centre = c(0.5, 0.5), ind = TRUE, cex.prop =
             NULL, print.mode = "raw", sigdigs = 3, direct.area =
             FALSE, area.vector = 0)

Это не дает того, что я хочу, поэтому я попытался: require (venneuler)

v <- venneuler(c(all_pep=13584, pep_C=1543, Car=1201, NEM=364, "all_pep&pep_C"=1543, "all_pep&Car"=1201, "all_pep_NEM"=364, "pep_C$Car"=1201, "pep_C&NEM"=364,
"Car&NEM"=24, "all_pep&pep_C&Car"=1201, "all_pep&pep_C&NEM"=364,     "all_pep&Car&NEM"=24, "pep_C&Car&NEM"=24, "all_pep&pep_C&Car&NEM"=24))

plot(v)

это тоже не то, что я хочу ... Есть идеи, пожалуйста?

1 Ответ

1 голос
/ 21 июня 2019

Вы можете рассмотреть мою nVennR посылку:

> library(nVennR)
> myV <- createVennObj(nSets = 4, sNames = c('all_pep', 'pep_C', 'Car', 'NEM'))
> myV <- setVennRegion(myV, c('all_pep'), 13584)
> myV <- setVennRegion(myV, c('all_pep', 'pep_C'), 1543)
> myV <- setVennRegion(myV, c('all_pep', 'pep_C', 'Car'), 1201)
> myV <- setVennRegion(myV, c('all_pep', 'pep_C', 'NEM'), 364)
> myV <- setVennRegion(myV, c('all_pep', 'pep_C', 'Car', 'NEM'), 24)
> myV <- plotVenn(nVennObj = myV)

И результат:

enter image description here

Существуют и другие способы ввода данных ( виньетка ) и веб-интерфейс для шести наборов. Веб-интерфейс работает только со списками элементов.

...