【问题标题】:Redrawing venn diagram重新绘制维恩图
【发布时间】:2017-05-12 11:29:55
【问题描述】:

使用 R 重绘维恩图的最简单方法是什么?我没有用于生成维恩图的数据,但其余图表是在 R 中绘制的......我想保持相同的结构,所以这意味着我必须以某种方式在 R 中重新绘制它。

您知道最简单的方法是什么吗?

这是我一直用于其他维恩图的代码。

v1 <- venn.diagram(list(1=a, 2=b, 3=c, 4=d), filename=NULL, fill=rainbow(4), cex.prop=NULL, cex=1.5)
png("TEST.png", width=7, height=7, units='in', res=150)
grid.newpage()
grid.draw(v1)
dev.off()

【问题讨论】:

    标签: r venn-diagram


    【解决方案1】:

    您可以调用 draw.venn.* 函数并直接输入重叠区域。这会很乏味,但我认为这是你唯一的选择。你会注意到组的顺序是不同的,也许有办法控制它,但我不确定那是什么。

    a <- c(2411, 12433,939,238, 1575,2483,2923,540)
    b <- c(1575, 2483,2923, 540, 1255, 1330, 615, 622)
    c <- c(1247, 1330, 2483, 12433, 150, 615, 2923, 939)
    d <- c(150,615,2923,939, 1245, 622, 540, 238)
    
    
    draw.quad.venn(area1 = sum(a), area2 = sum(b), area3 = sum(c), area4 = sum(d), 
                   n12 = sum(a[5:8]), n13 = sum(a[c(2,3,6,7)]), n14 = sum(a[c(3,4,7,8)]), 
                   n23 = sum(b[c(2,3,6,7)]), n24 = sum(b[c(3,4,7,8)]), 
                   n34 = sum(c[5:8]),
                   n123 = sum(a[6:7]),
                   n134 = sum(a[c(3,7)]),
                   n124 = sum(a[7:8]),
                   n234 = sum(b[c(3,7)]),
                   n1234 = 2923, category = c("A","B","C","D"), 
                   fill = colorspace::rainbow_hcl(4),
                   col = colorspace::rainbow_hcl(4)[c(1,3,4,2)], lwd = rep(1, 4))
    

    【讨论】:

    • 你能告诉我如何根据这样的错误找到哪些向量不正确:Error in draw.quad.venn(area1 = sum(a), area2 = sum(b), area3 = sum(c), : Impossible: a15 &lt;- n12 - a6 - a11 - a12 produces negative area
    • 很抱歉在第一个之后发表评论。我想知道在创建数字向量时应该使用什么样的顺序。
    • 对于集合的左侧,我从左上角开始制作矢量,然后向下。对于正确的组,我从右上角开始向下走。如果你看看我的向量和你原来的 venn 应该很明显。
    • 为什么不在示例中显示的图表的空白 png 顶部绘制数字?它看起来很简单,然后您保留原始设计。你可以选择任何你喜欢的顺序:)。
    【解决方案2】:

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-06-27
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多