首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >R中的三元维恩图:如何得到正确的面积比例

R中的三元维恩图:如何得到正确的面积比例
EN

Stack Overflow用户
提问于 2020-08-26 13:14:19
回答 3查看 755关注 0票数 0

我试图通过使用包VennDiagram来比较R中使用venn图的不同测试方法。我遇到的问题是,面积与数字的大小不成比例。所有这些都很好,然后我比较了2种测试方法,如下所示:

代码语言:javascript
复制
draw.pairwise.venn(44, 32, 28, c("TestA", "TestB"), fill = c("red", "blue"))

但是,当我尝试比较三种方法时,区域不再成比例了。我尝试过添加一些“附加”,比如eulerr.d = TRUE和scaled = TRUE,但似乎没有帮助。

代码语言:javascript
复制
draw.triple.venn(44, 39, 32, 39, 25, 28, 25, c("TestA", "TestC", "TestB"),  fill = c("red", "green", "blue"), euler.d = TRUE, scaled = TRUE)

有什么关于如何绕过这件事的建议吗?

提前谢谢你,

比约恩

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2020-08-26 14:50:17

Venn图和Euler图都不要求重叠区域与内容的大小成比例,因此我理解它使图形稍微更有用。我强烈建议研究包UpSetR,它提供了一些非常酷和有指导意义的集合重叠图形表示。

同时,我会使用user20650的建议,与eulerr玩,看看你是否发现它更容易得到你想要的覆盖图。也是在CRAN: bvenn,venneuler,vennplot和其他几个可能感兴趣的包。

Side :如果您只是在绘制与内容重叠的内容,那么它是一个Euler图,而不是Venn图。

票数 1
EN

Stack Overflow用户

发布于 2020-08-26 14:43:32

您使用的参数确实为一些值集创建了一个缩放的图。

代码语言:javascript
复制
draw.triple.venn(1, 3, 5, 0, 1, 0, 0, c("TestA", "TestC", "TestB"),  
                 fill = c("red", "green", "blue"))

对于其他参数集,不可能(或不编码)使区域与值成比例。

票数 1
EN

Stack Overflow用户

发布于 2020-09-03 15:12:24

您不能使用圆圈显示三个或多个集合的任意比例Venn或Euler图。对于不同的包,堆栈溢出中有一个关闭的线程来执行此操作。有两个选项是eulerr (格列奈特),它使用椭圆和损耗函数,还有我开发的nVennR (格列奈特),它使用其他形状并保持几乎精确的比例。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/63598473

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档