J'ai une masortingce suivante et je veux dessiner un graphique qui se chevauche en utilisant R (préférable) ou Excel.
abc a 1 0.5 0.7 b 0.5 1 0.4 c 0.7 0.4 1
Par exemple, le tableau ci-dessus montre que a
et b
ont un chevauchement de 50%, alors que a
et c
ont 70%.
Si vous voulez un chevauchement, vous avez manqué un numéro – le chevauchement des trois: a
, b
, c
.
Comme Aniko écrit dans le commentaire, vous pouvez utiliser les diagrammes de Venn, par exemple Vennerable de R-forge .
L'installation nécessite certains packages de BioConductor:
source("http://bioconductor.org/biocLite.R") biocLite(c("graph", "RBGL", "gtools", "xtable")) install.packages("Vennerable", repos="http://R-Forge.R-project.org")
Vous devez préparer vos données correctement:
require(Vennerable) x <- Venn( SetNames = c("a", "b", "c"), Weight = c(`100`=1, `010`=1, `001`=1, `110`=0.5, `101`=0.7, `011`=0.4, `111`=.5) # I made this up cause your question miss it )
Et voilà:
plot(x, doWeights=TRUE)
Quelques explications supplémentaires.
Les data structures pour le package Vennerable doivent fournir des noms de jeu ( "a"
, "b"
, "c"
dans votre cas) et les fréquences / proportions de chaque intersection. Ces noms 0/1 identifient les sous-sets: 1
signifie "dans le jeu", 0
signifie "non dans l'set". Donc, par exemple:
100
signifie dans a
, pas en b
, pas en c
, 011
signifie pas dans a
, en b
, en c
Donc 111
signifie dans les trois sets, qui est manquant dans votre masortingce et il ne peut pas être ajouté là. Pour vos données d'échantillonnage lorsque a & b a un chevauchement de 0,7 et que b & c a 0,4 signifie qu'au less 0,1 est en trois en même time (ou j'ai raté l'interprétation de ces numbers). (note: je pense que j'ai surestimé cette 0.5, parce qu'elle devrait être inférieure à 0.4)
Vous pouvez préparer vos données à Venn plot avant de créer une masortingce, par exemple:
X <- list( a = c("One", "Two", "Three"), b = c("One", "Three", "Four", "Five", "Seven"), c = c("Three", "Five", "Eight", "Nine", "Ten") ) x <- Venn(X) x # A Venn object on 3 sets named # a,b,c # 000 100 010 110 001 101 011 111 # 0 1 2 1 3 0 1 1 plot(x, doWeights=TRUE)