R中的面积比例三向维恩图

Area proportional 3-way Venn Diagram in R

我阅读了很多关于在 R 中创建维恩图的帖子。Is it possible to create a proportional triple Venn Diagram talks about using eulerr package. Venn diagram proportional and color shading with semi-transparency 非常全面,确实帮助我制作了很多我需要的其他图表。

虽然上面的线程很棒,但我相信还有一个问题没有被上面的线程解决。当三个集合的交集代表整个区域的很大一部分时,就会发生这种情况。就我而言,R&S&W 占总面积的 92%。因此,该图难以察觉且丑陋。我们有什么办法可以解决这个问题吗?

这是我的数据和代码:

dput(Venn_data)
structure(c(94905288780.4383, 3910207511.54001, 2615620176.44757, 
1125606833.85568, 187542691.618916, 104457994.331746, 96049675.0823557
), .Names = c("R&S&W", "R&S", "S&W", "S", "R", "W", "R&W"))

VennDiag2 <- eulerr::euler(Venn_data,shape="ellipse")
windows()
plot(VennDiag2)

这是输出:

我看不出什么是 R&S、S&W、R、S、W 等

我也试过 venneuler 包。

这是我的代码:

windows()
 v<-venneuler(Venn_data)
 plot(v)

不幸的是,这也没有帮助。这是输出。

我们有什么办法可以解决这个问题吗?我不是专家所以我想在这里问。我真诚地感谢任何帮助。我在这上面花了好几个小时,但仍然无法让它工作。

您始终可以自己检索绘图参数并使用箭头或其他方式定位标签,但另一种选择是使用图例而不是标签。

plot(VennDiag2, legend = TRUE)

尽管欧拉图在这里有多大用处,但还是有些疑问。

我几个月前发布的 nVennR 包中有一个不同的可视化策略:

library(nVennR)
v <- createVennObj(nSets = 3, sNames = c('R', 'S', 'W'), sSizes = c(0, 104457994.331746, 1125606833.85568, 2615620176.44757, 187542691.618916, 96049675.0823557, 3910207511.54001, 94905288780.4383))
v <- plotVenn(nVennObj = v)

我没想到需要这么大的数字,我看到它们被裁剪了。然而,结果是一个矢量图像(svg),图片可以在之后进行编辑。您可以在 vignette 中找到更多详细信息,包括数字为何如此排列的原因。该包还可以处理更多的集合。