在子集中显示非数字条目的维恩图 [英] Venn diagram for non-numeric entries to be shown in subsets

查看:62
本文介绍了在子集中显示非数字条目的维恩图的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我有以下数据框:

SET1 SET2 SET3标准杆1杆2杆杆1杆标准杆2杆3杆标准杆2杆标准杆 3 杆 标准杆 5 杆…………

我想制作一个维恩图,因为所有这些parX"元素都显示在各自的子集中,即作为标签,而不仅仅是重叠元素的数量.哪个 R 包支持?

解决方案

关于

I have the folowing dataframe:

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

I would like to make a Venn diagram in that all those 'parX' elements are shown in respective subets i.e. as labels, not just the number of overlapping elements. Which R package supports that?

解决方案

Regarding the best answer from here you have to add labels manually (using VennDiagram), when you have two circles it's pretty easy, however if you have three or more, whole stuff becames more complex

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)

这篇关于在子集中显示非数字条目的维恩图的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆