Диаграмма Венна для нечисловых записей для отображения в подмножествах - PullRequest
0 голосов
/ 25 января 2019

У меня есть следующий кадр данных:

SET1 SET2 SET3
par1 par2 par1
par2 par3 par2
par3 par4 par5
...  ...  ...

Я хотел бы сделать диаграмму Венна, в которой все эти элементы 'parX' показаны в соответствующих подсетях, то есть в виде меток, а не только количества перекрывающихся элементов,Какой пакет R поддерживает это?

1 Ответ

0 голосов
/ 25 января 2019

Относительно лучшего ответа из здесь вы должны добавлять метки вручную (используя VennDiagram), когда у вас есть два круга, это довольно легко, однако, если у вас есть три или более, весь материал становится более сложным

library(VennDiagram)



SET1 <- c('a','b','c','d')
SET2 <- c('a','e','f','g')
SET3 <- c('a','w','x','f')



v <- venn.diagram(list(SET1 = SET1, SET2 = SET2, SET3 = SET3),
                  fill = c("red", "green","blue"),
                  alpha = c(0.5, 0.5, 0.5), cat.cex = 1.5, cex=1.5,
                  filename=NULL)
grid.newpage()
grid.draw(v)


v[[7]]$label  <- paste(setdiff(SET1, intersect(SET2,SET3)), collapse="\n") 
v[[8]]$label <- paste(setdiff(intersect(SET1,SET2),intersect(SET1, intersect(SET2,SET3))), collapse="\n")
v[[9]]$label <- paste(setdiff(SET2, intersect(SET1,SET3)), collapse="\n")
v[[10]]$label <- paste(setdiff(intersect(SET3,SET1),intersect(SET3, intersect(SET1,SET2))), collapse="\n")
v[[11]]$label <- paste(intersect(SET1, intersect(SET2,SET3)), collapse="\n")
v[[12]]$label <- paste(setdiff(intersect(SET2,SET3),intersect(SET2, intersect(SET1,SET3))), collapse="\n")
v[[13]]$label <- paste(setdiff(SET3, intersect(SET1,SET2)), collapse="\n")


grid.newpage()
grid.draw(v)

enter image description here

...