使用VennDiagram包在R中缩放三维维恩图

use*_*570 7 r venn-diagram

有谁知道如何让R包VennDiagram根据设定的大小来缩放包含3个相交集的维恩图的圆圈?

我可以通过venneular包实现这种扩展,但我发现与VennDiagram相比,其他图形选项有点受限.

VennDiagram包文档建议将参数'scaled'设置为TRUE应该可以做到这一点,但我发现这会产生3个相同大小的圆.

包文档确实以密码形式表明缩放参数可能仅适用于某些图:

?draw.triple.venn
Run Code Online (Sandbox Code Playgroud)

揭示了:

scaled:"布尔值,指示是否根据设置的尺寸缩放某些欧拉图中的圆形尺寸"

?venn.diagram

#Argument Venn Sizes    Class    Description
#scaled    2, 3         logical  Enable scaling for two-set and certain three-set Euler diagrams.
Run Code Online (Sandbox Code Playgroud)

我的代码的玩具示例:

require(VennDiagram)

venn.plot <- draw.triple.venn(
    area1 = 70,
    area2 = 250,
    area3 = 500,
    n12 = 30,
    n23 = 60,
    n13 = 10,
    n123 = 5,
    category = c("C1", "C2", "C3"),
    fill = c("blue", "red", "green"),
    scaled=TRUE)

tiff(filename = "test.tiff", compression = "none",type = "quartz",antialias = "none")
grid.draw(venn.plot)
dev.off()
Run Code Online (Sandbox Code Playgroud)

类似地,使用'venn.diagram'函数的代码不会产生所需的缩放:

venn.diagram(x=list(A=c(1:15,16:20), B=c(6:15,21:30,100:150), C=c(11:30,200:300)),
         filename="test.tiff",
         fill = c("blue", "yellow", "red"), scaled=TRUE)
Run Code Online (Sandbox Code Playgroud)

谢谢v.much

吉姆

use*_*570 5

所以回答我自己的问题:对于某些配置,使用圆圈创建缩放的 3 向维恩在数学上是不可能的。


Shi*_*Guo 5

由于数据的视觉表示可能会产生误导,三组维恩图的一般缩放被禁用

请尝试使用以下两个工具,

http://bioinformatics.psb.ugent.be/webtools/Venn/ http://bioinfogp.cnb.csic.es/tools/venny/index.html

对于您的问题,请阅读以下说明:

关键是在draw.triple.venn中设置overrideTriple

如果 euler.d == TRUE,则针对 19 种特殊情况绘制欧拉图。某些欧拉图在适当的情况下使用特定于两组维恩图的缩放、sep.dist 或偏移参数。该函数默认将三个圆圈放置在三角形排列中,两组在顶部,一组在下方。这些圆圈按顺时针方向对应于区域 1、区域 2 和区域 3,区域 1 位于左上角。注意:由于数据的视觉表示可能会产生误导,三组维恩图的一般缩放被禁用。要重新启用,请将任意值分配给变量overrideTriple

http://cran.r-project.org/web/packages/VennDiagram/VennDiagram.pdf

  • 我尝试过设置这个变量,但它不起作用。我在使用和不使用 overrideTriple 的情况下运行了原始问题中的示例(我将其设置为 TRUE),并且输出是相同的。 (4认同)