意外的空气输出

时间:2012-10-26 00:31:58

标签: r venn-diagram

我试图了解venneuler的工作原理,并输出一个我不希望的维恩图。当我试图理解某些东西时,我喜欢用简单的例子。我正在提供我认为的矩阵:

  

逻辑或数字矩阵,其列表示集合和   共现是       由行中的非零(rep.TRUE)值定义(行的权重为1表示       逻辑矩阵或数字矩阵的行和)。 - 手册 -

我希望如果两个东西在同一行中都有1个或0个,那么他们的venn就会重叠。所以在这个矩阵中,w和z没有共同的1或0。我希望他们的维恩不会重叠但他们会这样做(见下图1)。为什么?如果我提供错误信息或需要重新格式化,请解释。如果它在venneular的计算中,请解释一下。

     w x y z
[1,] 1 0 1 0
[2,] 0 0 1 1
[3,] 0 0 1 1
[4,] 1 1 0 0

https://dl.dropbox.com/u/61803503/venn.1.png

以上代码:

library(venneuler)
w <- c(1,0,0,1)
x <- c(0, 0, 0, 1)
y <- c(1, 1, 1,0)
z <- c(0, 1, 1,0)
a <- cbind(w, x, y, z)       
v <- venneuler(a)
plot(v)

1 个答案:

答案 0 :(得分:5)

尝试这些 - 与?venneuler

的示例相同
library(venneuler)
plot(venneuler(c(A=1, B=1, C=1, "A&B"=0.5, "A&C"=0.5, "B&C"=0.5 ,"A&B&C"=0.5)))

enter image description here

plot(venneuler(c(A=1, B=1, C=1, "A&B"=0.5, "A&C"=0.5, "B&C"=0.5 ,"A&B&C"=0)))

enter image description here

有任何显着差异吗?没有为什么?因为第二种情况是不可能的!想象一下,3个面积= 1的圆圈中的任何2个如何具有面积= 0.5的交点,但是在所有3个的交叉点中没有任何东西?

现在,如果您希望对所需矩阵有一个很好的表示,我建议使用VennDiagram包:

library(VennDiagram)
w <- c(1, 0, 0, 1)
x <- c(0, 0, 0, 1)
y <- c(1, 1, 1, 0)
z <- c(0, 1, 1, 0)

venn.diagram(
    x = list(w = which(w==1),x = which(x==1),y = which(y==1),z = which(z==1)), 
    height=2000, width=2000, resolution=300, col = "transparent",margin = 0.2,
    fill = c("cornflowerblue", "green", "yellow", "darkorchid1"), alpha = 0.50,
    cex = 1.5,filename="~/Desktop/a.tiff",fontfamily = "serif",fontface = "bold",
    cat.col = c("darkblue", "darkgreen", "orange", "darkorchid4"),cat.cex = 1.5, 
    cat.pos = 0,cat.dist = 0.07,cat.fontfamily = "serif",rotation.degree = 270,
    label.col = "white");

enter image description here