Diagramme de Venn avec un ombrage proportionnel et coloré avec une semi-transparence
j'ai le type de données de comptage suivant.
A 450
B 1800
A and B both 230
je veux développer un coloré (éventuellement semi-transparence aux intersections) comme le diagramme de Venn suivant.
Note: cette figure est un exemple dessiné à la main dans PowerPoint, et il n'est pas à l'échelle.
6 réponses
voici un post qui discute diagramme de Venn de la liste des grappes et des facteurs Co-occurrents .
Pour la solution facile est d'utiliser le paquet venneuler :
require(venneuler)
v <- venneuler(c(A=450, B=1800, "A&B"=230))
plot(v)
pour des solutions plus avancées et personnalisées, consultez le package VennDiagram .
basé sur la deuxième réponse de Geek sur la deuxième suggestion D'acide ( merci encore ) je pourrais sove le problème de ligne aussi bien. 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 paquet R, Euler , qui fait ce que vous voulez. Il est tout à fait 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 pour le même paquet r à Euler.co
même si cela ne répond pas complètement à votre question. J'ai pensé que ce sera utile pour d'autres personnes qui cherchent à 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 juste des couleurs et de la transparence en utilisant illustrator.
il y a un traceur proportionnel intuitif et flexible que vous pouvez télécharger et exécuter. Trouver à: http://omics.pnl.gov/software/VennDiagramPlotter.php
et
jvenn : un visualiseur interactif de diagramme de Venn-Génotoul Bioinfo: http://bioinfo.genotoul.fr/jvenn/
je sais que L'OP demande une solution en R mais je voudrais pointer vers une solution basée sur le web appelé BioVenn . Il faut jusqu'à 3 listes d'éléments et dessine un diagramme de Venn, de sorte que chaque surface est proportionnelle au nombre d'éléments - comme celui-ci:
dans ce diagramme j'ai changé manuellement (via PhotoShop) l'emplacement des nombres car je n'ai pas aimé les emplacements choisis par BioVenn. Mais vous pouvez choisir de ne pas avoir les chiffres.
en théorie, les listes utilisées avec BioVenn seront composées d'identificateurs de gènes mais, en pratique, cela n'a pas d'importance - les listes doivent simplement contenir des chaînes.