2012-07-30 10 views
7

¿Alguien sabe cómo obtener el paquete VennDiagram para escalar los círculos de un diagrama de Venn que contiene 3 conjuntos que se intersectan de acuerdo con el tamaño del conjunto?escala del diagrama triple de Venn en R con el paquete VennDiagram

Puedo lograr tal escalamiento con el paquete venneular, pero me parece un poco limitado en términos de otras opciones gráficas en comparación con VennDiagram.

La documentación del paquete VennDiagram sugiere establecer el argumento 'escalado' en VERDADERO, pero me parece que esto produce 3 círculos del mismo tamaño.

El paquete de documentación sugiere crípticamente que el argumento de escala sólo se puede trabajar para ciertos diagramas:

?draw.triple.venn 

revela:

escalado: "booleano que indica si está a escala tamaños circulares en cierta Euler Diagramas de acuerdo para establecer tamaños o no"

y

?venn.diagram 

#Argument Venn Sizes Class Description 
#scaled 2, 3   logical Enable scaling for two-set and certain three-set Euler diagrams. 

Un ejemplo de juguete de mi código:

require(VennDiagram) 

venn.plot <- draw.triple.venn(
    area1 = 70, 
    area2 = 250, 
    area3 = 500, 
    n12 = 30, 
    n23 = 60, 
    n13 = 10, 
    n123 = 5, 
    category = c("C1", "C2", "C3"), 
    fill = c("blue", "red", "green"), 
    scaled=TRUE) 

tiff(filename = "test.tiff", compression = "none",type = "quartz",antialias = "none") 
grid.draw(venn.plot) 
dev.off() 

Del mismo modo este código usando la función 'venn.diagram' no produce la escala requerida:

venn.diagram(x=list(A=c(1:15,16:20), B=c(6:15,21:30,100:150), C=c(11:30,200:300)), 
     filename="test.tiff", 
     fill = c("blue", "yellow", "red"), scaled=TRUE) 

Gracias v.much

Jim

Respuesta

3

Para responder a mi propia pregunta: para ciertas configuraciones es matemáticamente imposible t o cree una Venn de 3 vías a escala usando círculos.

+0

en Biostars hay un hilo similares diciendo que es imposible. Con elipses, es posible. ¿Encontraste una manera de dibujar usando R? – userJT

1

Yo uso Vennerable en su lugar. Leer datos en el objeto Venn es algo complicado, pero genera diagramas de tres conjuntos ponderados/escalados + opciones gráficas.

+1

Enlace obsoleto. Use en su lugar: https://github.com/js229/Vennerable – EdM

2

de escala general de tres sets diagramas de Venn son discapacitados debido a la representación visual puede inducir a error de los datos

Por favor, intente utilizar las dos herramientas siguientes,

http://bioinformatics.psb.ugent.be/webtools/Venn/ http://bioinfogp.cnb.csic.es/tools/venny/index.html

Y a su pregunta, por favor lea las siguientes notas:

el punto clave es establecer anularTriple en draw.triple.venn

Los diagramas de Euler se dibujan para 19 casos especiales si euler.d == TRUE. Ciertos diagramas de Euler hacen uso de los argumentos a escala, sep.dist o offset específicos de los diagramas de Venn de dos conjuntos cuando corresponde. La función predeterminada es colocar los tres círculos en una disposición triangular con dos conjuntos en la parte superior y uno a continuación. Los círculos corresponden a area1, area2 y area3 en el sentido de las agujas del reloj con area1 en la parte superior izquierda. N.B. La escala general para diagramas de Venn de tres conjuntos está deshabilitada debido a la representación visual potencialmente engañosa de los datos.Para volver a habilitar, asignar cualquier valor a la variable overrideTriple

http://cran.r-project.org/web/packages/VennDiagram/VennDiagram.pdf

+2

He intentado configurar esta variable y no funciona. Ejecuté el ejemplo de la pregunta original con y sin anularTriple (lo configuré en TRUE) y la salida fue la misma. –

Cuestiones relacionadas