Diagramma di Venn proporzionale e ombreggiatura del colore con semitrasparenza

Ho i seguenti tipi di dati di conteggio.

A 450 B 1800 A and B both 230 

Voglio sviluppare un colorato (possibilmente semitrasparente alle intersezioni) come il seguente diagramma di Venn.

inserisci la descrizione dell'immagine qui

Nota: questa figura è un esempio disegnato a mano in PowerPoint e non è in scala.

Ecco un post che discute il diagramma di Venn dall’elenco di cluster e fattori concomitanti .

Per una soluzione facile utilizzare il pacchetto trovatouler :

 require(venneuler) v <- venneuler(c(A=450, B=1800, "A&B"=230)) plot(v) 

inserisci la descrizione dell'immagine qui

Per soluzioni più avanzate e personalizzate, controlla il pacchetto VennDiagram .

Basato sulla seconda risposta del secondo suggerimento di Geek On Acid (grazie ancora una volta), potrei anche innescare il problema della linea. Sto postando se questo è rilevante per altri googler!

  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"); 

inserisci la descrizione dell'immagine qui

Ho recentemente pubblicato un nuovo pacchetto R, eulerr , che fa quello che vuoi. È abbastanza simile a trovatore, ma senza le sue incongruenze.

 library(eulerr) fit <- euler(c(A = 450, B = 1800, "A&B" = 230)) plot(fit) 

eulerplot

Oppure puoi provare l'applicazione lucida per lo stesso pacchetto r su eulerr.co

lucido-Euler

Anche se questo non risponde alla tua domanda completamente. Ho pensato che questo sarebbe stato utile per altre persone che cercavano di complottare Venn Diagram. Si può usare la funzione venn () dal pacchetto 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)) 

inserisci la descrizione dell'immagine qui Successivamente aggiungo colors e trasparenza usando l'illustratore. inserisci la descrizione dell'immagine qui

C’è un plotter proporzionale intuitivo e flessibile che puoi scaricare ed eseguire. Trovalo su: http://omics.pnl.gov/software/VennDiagramPlotter.php

e

jvenn : visualizzatore di diagrammi interattivi di Venn – GenoToul Bioinfo: http://bioinfo.genotoul.fr/jvenn/

So che l’OP chiede una soluzione in R, ma vorrei fare riferimento a una soluzione basata sul web chiamata BioVenn . Richiede fino a 3 elenchi di elementi e disegna un diagramma di Venn in modo che ogni superficie sia proporzionale al numero di elementi, come questo:

inserisci la descrizione dell'immagine qui

In questo diagramma ho modificato manualmente (tramite PhotoShop) il posizionamento dei numeri in quanto non mi piacevano i luoghi scelti da BioVenn. Ma puoi scegliere di non avere numeri.

In teoria, gli elenchi utilizzati con BioVenn devono essere costituiti da ID di geni ma, in pratica, non importa: gli elenchi devono semplicemente contenere stringhe.