2012-10-26 19 views
5

venneuler'un nasıl çalıştığını anlamaya çalışıyorum ve beklemeyeceğim bir venn şeması çıktılar. Bir şeyi anlamaya çalışırken basit örneklerle çalışmaktan hoşlanırım. I inanmak aşağıda matrisi temin ediyorum:Beklenmeyen venneuler çıktısı

sütunları temsil setleri ve eşdizimlilik sıralar halinde sıfır olmayan (temsilcisi DOĞRU.) Değerleri ile tanımlanır (ağırlık için mantıksal ya da sayısal bir matris mantıksal matrisleri veya sayısal matrisler için satır toplamı için 1 satırdır). -vücut el kitabı -

İki satırın her ikisi de aynı satırda 1 veya 0'lar varsa vennlarında üst üste gelmelerini beklerim. Yani bu matriste w ve z 1 veya 0'ın ortak noktası yoktur. Onların vennlarının üst üste gelmemesini beklerdim ama yaparlar (aşağıdaki şekil 1'e bakınız). Niye ya? Yanlış bilgi veriyorum ya da yeniden biçimlendirilmesi gerekiyorsa lütfen açıklayınız. venneular hesaplamaları içinde ise lütfen bunu açıklayın.

 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

yukarıda kodu:

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

Ben> 3 setleri ile, düzenlemek için genel bir yolu yoktur çünkü şüpheli Tüm örtüşme kısıtlamalarını karşılamak için bir düzlemde 4 daire. (Ben bunun için bir referansım yok - sadece benim geometrik sezgim.) Venneuler() 've arkasındaki programlamanın çoğu. Tamamen doğru bir çözüm olmamasına rağmen mümkün olduğunca iyi bir iş yapmayı hedeflemelidir. –

+0

Mümkün oldukça, el kitabı artıkları, 'giriş kesişim alanı ile takılı kesişim alanı' arasındaki yüzde farkı olarak ele aldığından mümkün. –

cevap

4

deneyin bu - ?venneuler örneğinde aynı:

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

Herhangi anlamlı fark? Hayır neden? çünkü ikinci durum imkansız! Alan = 1'in 3 çemberinden herhangi birinin alan = 0.5'in kesişimine nasıl sahip olduğunu düşünün, fakat 3'ün kesişiminde hiçbir şey yok mu? İstediğiniz matris iyi bir şekilde temsil sahip olmak ister Şimdi eğer

, ben VennDiagram paketini kullanmanızı öneririz:

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