J'ai le type suivant de données de compte.
A 450
B 1800
A and B both 230
Je souhaite développer un rendu coloré (éventuellement semi-transparent aux intersections), comme dans le diagramme de Venn suivant.
Note: Ce chiffre est un exemple dessiné à la main dans PowerPoint et dont l'échelle n'est pas à l'échelle.
Voici un article qui traite diagramme de Venn de la liste des grappes et des facteurs concomitants .
Pour une solution facile, utilisez le paquetage venneuler :
require(venneuler)
v <- venneuler(c(A=450, B=1800, "A&B"=230))
plot(v)
Pour des solutions plus avancées et personnalisées, vérifiez le package VennDiagram .
Sur la base de la deuxième réponse de Geek On Acid, deuxième suggestion (merci encore une fois), je pourrais également régler le problème de la ligne. Je poste si cela est pertinent pour d'autres googlers!
require(VennDiagram)
venn.diagram(list(B = 1:1800, A = 1571:2020),fill = c("red", "green"),
alpha = c(0.5, 0.5), cex = 2,cat.fontface = 4,lty =2, fontfamily =3,
filename = "trial2.emf");
J'ai récemment publié un nouveau package R, eulerr , qui fait ce que vous voulez. C'est assez similaire à venneuler mais sans ses incohérences.
library(eulerr)
fit <- euler(c(A = 450, B = 1800, "A&B" = 230))
plot(fit)
Ou vous pouvez essayer l’application brillante du même paquetage à l’adresse eulerr.co
Même si cela ne répond pas complètement à votre question. Je pensais que cela serait utile pour les autres personnes cherchant à tracer le diagramme de Venn. On peut utiliser la fonction venn () du paquet gplots: http://www.inside-r.org/packages/cran/gplots/docs/venn
## modified slightly from the example given in the documentation
## Example using a list of item names belonging to the
## specified group.
##
require(gplots)
## construct some fake gene names..
oneName <- function() paste(sample(LETTERS,5,replace=TRUE),collapse="")
geneNames <- replicate(1000, oneName())
##
GroupA <- sample(geneNames, 400, replace=FALSE)
GroupB <- sample(geneNames, 750, replace=FALSE)
GroupC <- sample(geneNames, 250, replace=FALSE)
GroupD <- sample(geneNames, 300, replace=FALSE)
venn(list(GrpA=GroupA,GrpB=GroupB,GrpC=GroupC,GrpD=GroupD))
Ensuite, j'ajoute des couleurs et de la transparence à l'aide d'illustrator.
Il existe un traceur proportionnel intuitif et flexible que vous pouvez télécharger et exécuter. Trouvez-le à: http://omics.pnl.gov/software/VennDiagramPlotter.php
et
jvenn : un visualiseur interactif de diagrammes de Venn - GenoToul Bioinfo: http://bioinfo.genotoul.fr/jvenn/
Je sais que le PO demande une solution dans R, mais je voudrais signaler une solution Web appelée BioVenn . Il prend jusqu'à 3 listes d'éléments et dessine un diagramme de Venn de sorte que chaque surface soit proportionnelle au nombre d'éléments - comme celui-ci:
Dans ce diagramme, j'ai modifié manuellement (via PhotoShop) la position des numéros car je n'aimais pas les emplacements choisis par BioVenn. Mais vous pouvez choisir de ne pas avoir de chiffres.
En théorie, les listes utilisées avec BioVenn doivent comporter des identifiants de gènes, mais dans la pratique, cela n'a pas d'importance - les listes doivent simplement contenir des chaînes.