R 中的三重维恩图:如何获得正确的区域比例

Triple venn-diagram in R: How to get proportions of the area right

我正在尝试通过使用包 VennDiagram 在 R 中使用维恩图来比较不同的测试方法。我 运行 进入面积与数字大小不成正比的问题。 这一切都很好,然后我比较了 2 种测试方法,如下所示:

draw.pairwise.venn(44, 32, 28, c("TestA", "TestB"), fill = c("red", "blue"))

但是,当我尝试比较 3 种方法时,面积不再成比例。我试图添加一些“额外”,如 eulerr.d = TRUE 和 scaled = TRUE,但似乎没有帮助。

draw.triple.venn(44, 39, 32, 39, 25, 28, 25, c("TestA", "TestC", "TestB"),  fill = c("red", "green", "blue"), euler.d = TRUE, scaled = TRUE)

关于如何解决这个问题的任何提示?

提前谢谢你,

比约恩

您使用的参数确实为一些 值集创建了一个比例图,例如

draw.triple.venn(1, 3, 5, 0, 1, 0, 0, c("TestA", "TestC", "TestB"),  
                 fill = c("red", "green", "blue"))

对于其他参数集,似乎不可能(或未编码)使面积与值成比例

维恩图和欧拉图都不需要重叠区域与内容的大小成比例,但我知道这会使图表稍微有用一些。我强烈建议研究包 UpSetR,它提供了一些非常酷且有指导意义的集合重叠图形表示。

与此同时,我会采纳 user20650 的建议来尝试 eulerr,看看您是否觉得更容易获得您想要的叠加图。 同样在 CRAN:bvenn、venneuler、vennplot 和其他几个可能感兴趣的软件包。

旁白:如果您只是绘制与内容重叠的部分,那么它是欧拉图,而不是维恩图。

您不能使用圆显示三组或更多组的任意比例维恩图或欧拉图。 Whosebug 中有一个关于不同包的封闭线程来执行此操作。几个选项是 eulerr (vignette), which uses ellipses and a loss function, and the one I developed, nVennR (vignette),它使用其他形状并保持几乎精确的比例。