9

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

我可以使用 venneular 包实现这种缩放,但与 VennDiagram 相比,我发现在其他图形选项方面这有点受限。

VennDiagram 包文档建议将参数 'scaled' 设置为 TRUE 应该可以解决问题,但我发现这会产生 3 个大小相等的圆圈。

包文档确实暗示 scaled 参数可能仅适用于某些图表:

?draw.triple.venn

揭示:

scaled:“布尔值,指示是否根据设置的大小在某些欧拉图中缩放圆的大小”

?venn.diagram

#Argument Venn Sizes    Class    Description
#scaled    2, 3         logical  Enable scaling for two-set and certain three-set Euler diagrams.

我的代码的玩具示例:

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()

同样,使用“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)

非常感谢

吉姆

4

5 回答 5

5

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

于 2012-08-13T13:47:27.347 回答
4

由于数据的潜在误导性视觉表示,三组维恩图的一般缩放被禁用

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

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 或偏移参数。该功能默认将三个圆圈以三角形排列,其中两组在顶部,一组在下面。圆圈以顺时针方向对应于 area1、area2 和 area3,area1 在左上角。NB 由于数据的潜在误导性视觉表示,禁用了三组维恩图的常规缩放。要重新启用,请将任何值分配给变量overrideTriple

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

于 2015-07-10T20:02:54.130 回答
4

我的解决方案:

overrideTriple=T
draw.triple.venn(9, 20, 30, 2, 10, 3, 2, category =
               rep("", 3), rotation = 1, reverse = FALSE, euler.d = F, scaled = F)
于 2018-12-04T13:55:52.020 回答
1

我用Vennerable代替。将数据读入维恩对象有点复杂,但它会生成加权/缩放的三组图表 + 图形选项。

于 2013-02-07T07:39:33.750 回答
1

如果您考虑不同的方法,我们开发了具有其他形状的 nVennR 包来传达区域大小。

mySVG <- plotVenn(list(A=c(1:15,16:20)), list(B=c(6:15,21:30,100:150)), list(C=c(11:30,200:300)))

准比例维恩图

这个 R 包是初步的,输出控制的选项非常有限。我们正在根据收到的反馈开发一个新版本。还有一个具有更多选项的Web 版本,并且始终可以使用 Inkscape 等外部工具编辑输出。

于 2018-04-01T06:57:57.360 回答