2012-07-30 3 views
7

Qualcuno sa come ottenere il pacchetto R VennDiagram per ridimensionare i cerchi di un diagramma Venn contenente 3 serie intersecanti in base alla dimensione impostata?ridimensionamento del diagramma Venn triplo in R con il pacchetto VennDiagram

Posso ottenere tale ridimensionamento con il pacchetto periolare, ma lo trovo un po 'limitato in termini di altre opzioni grafiche rispetto a VennDiagram.

La documentazione del pacchetto VennDiagram suggerisce di impostare l'argomento "ridimensionato" su TRUE dovrebbe fare il trucco, ma trovo che questo produce 3 cerchi di uguali dimensioni.

La documentazione pacchetto non cripticamente suggeriscono che l'argomento scalato può funzionare solo per alcuni diagrammi:

?draw.triple.venn 

svela:

scalata: "booleano che indica se ridimensionare dimensioni dei cerchi in taluni Euler diagrammi secondo per impostare la dimensione o no"

e

?venn.diagram 

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

Un esempio giocattolo del mio codice:

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() 

Allo stesso modo questo codice utilizzando la funzione 'venn.diagram' non produce la scala necessaria:

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) 

Grazie v.much

Jim

risposta

3

Quindi per rispondere alla mia stessa domanda: per determinate configurazioni è matematicamente impossibile t o creare un Venn a 3 vie con scala usando cerchi.

+0

su Biostars c'è un filo simile dicendo che è impossibile. Con le elips, è possibile. Hai trovato un modo per disegnarlo usando R? – userJT

1

Io uso invece Vennerable. La lettura dei dati nell'oggetto Venn è alquanto complicata, ma genera diagrammi a tre livelli ponderati/ridimensionati + opzioni grafiche.

+1

Link obsoleto. Utilizzare invece: https://github.com/js229/Vennerable – EdM

2

ridimensionamento generale per tre set diagrammi di Venn sono disabili a causa di rappresentazione visiva potenzialmente fuorviante dei dati

per favore cercate di utilizzare i seguenti due strumenti,

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

E per la vostra domanda, leggere le seguenti note:

il punto chiave è impostare overrideTriple in draw.triple.venn

I diagrammi di Eulero vengono disegnati per 19 casi speciali se euler.d == TRUE. Alcuni diagrammi di Eulero utilizzano gli argomenti ridimensionati, sep.dist o offset specifici per i diagrammi di Venn a due livelli, laddove appropriato. La funzione è impostata per posizionare i tre cerchi in una disposizione triangolare con due serie in alto e una in basso. I cerchi corrispondono a area1, area2 e area3 in senso orario con area1 in alto a sinistra. N.B. Il ridimensionamento generale per i diagrammi di Venn a tre set è disabilitato a causa della rappresentazione visiva potenzialmente fuorviante dei dati.Per riattivare, assegnare un valore alla variabile overrideTriple

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

+2

Ho provato a impostare questa variabile e non funziona. Ho eseguito l'esempio dalla domanda originale con e senza overrideTriple (l'ho impostato su TRUE) e l'output era lo stesso. –