6

我试图了解它是如何venneuler工作的,它会输出一个我没想到的维恩图。当我试图理解某些东西时,我喜欢使用简单的例子。我正在提供我认为下面的矩阵:

一个逻辑或数字矩阵,其列表示集合,并且共现由行中的非零(代表 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)
4

1 回答 1

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

在此处输入图像描述

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

在此处输入图像描述

有什么明显的区别吗?没有为什么?因为第二种情况是不可能的!想象一下面积 = 1 的 3 个圆中的任何 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");

在此处输入图像描述

于 2012-10-26T03:50:48.617 回答