VennDiagram: un pacchetto per la generazione di diagrammi di Venn ed Eulero altamente personalizzabili in R

Quasi tutte le opzioni grafiche nel pacchetto VennDiagram sono state parametrizzate e rese personalizzabili. I valori predefiniti sono stati selezionati per generare diagrammi sensati, quindi in casi semplici non è richiesto un alto livello di personalizzazione. La figura 1 evidenzia la diversità delle parametrizzazioni disponibili. Esistono quattro grandi gruppi di parametri grafici: shape-fill, shape-line, labels e titles. Shape-fill si riferisce ai colori all’interno di ogni cerchio o ellisse. Tutti i colori disponibili nell’ambiente R possono essere usati, e l’alpha-blending può essere regolato su una base per forma. Shape-lines sono le linee che circondano ogni cerchio o ellisse. Possono essere completamente assenti (figura 1C), solide (figure 1A e 1B), o qualsiasi altro tipo di linea R disponibile (figura 1D). Il loro colore può essere cambiato, e ogni forma può avere un set separato di parametri. Le etichette si riferiscono sia alle didascalie che descrivono ogni cerchio o ellisse che ai numeri al loro interno. Di nuovo, queste possono essere personalizzate in termini di colore, tipo di carattere e dimensione del carattere con qualsiasi parametro R disponibile. Anche le posizioni delle etichette delle didascalie possono essere personalizzate. I titoli, che includono il titolo principale e il sottotitolo come dimostrato nella figura 1D, possono anche essere personalizzati nello stesso modo delle etichette.

Figura 1
figura1

I quattro tipi di diagrammi di Venn disegnati dal pacchetto VennDiagram. A) Un diagramma di Venn a una serie che mostra caratteristiche rudimentali personalizzabili come la dimensione del carattere dell’etichetta, la faccia del carattere dell’etichetta e il riempimento della forma. B) Un diagramma di Venn a due set che mostra caratteristiche più avanzate come il ridimensionamento, le specifiche individuali di riempimento della forma e il posizionamento individuale delle etichette delle didascalie. C) Un diagramma di Venn a tre set che mostra un diverso tipo di linea di forma (“trasparente”) e l’opzione “testo” di posizionamento delle etichette di didascalia dove le etichette di didascalia sono attaccate alle etichette di area. D) Un diagramma di Venn a quattro serie che mostra una combinazione di tutte le caratteristiche precedenti più la possibilità di personalizzare i titoli. Il codice per generare tutti i diagrammi mostrati qui è incluso nel file aggiuntivo 3.

Oltre a questi specifici elementi grafici, VennDiagram offre anche molte opzioni generali, come la scalatura, la rotazione o l’inversione dei diagrammi. Il ridimensionamento dei diagrammi è stato implementato con l’obiettivo di visualizzare diagrammi di Venn in cui le dimensioni grafiche delle aree parziali (aree delimitate su tutti i lati da curve e che non possono essere ulteriormente suddivise) corrispondono effettivamente ai valori numerici del numero di elementi all’interno di ogni regione. È possibile scalare i diagrammi di Venn a due set e un numero selezionato di diagrammi di Venn a tre set – discutiamo di seguito le sfide per renderlo possibile per tutti i casi a tre set. L’uso del ridimensionamento può a volte portare alla sovrapposizione di aree troppo piccole per le etichette numeriche. La figura 2, riga 1, colonna 1 mostra una linea di collegamento generata programmaticamente che permette una gestione speciale di questo caso. Il riconoscimento automatico di un gran numero di diagrammi di Eulero è implementato, ma questa modalità può essere disattivata con un parametro function-call per tracciare invece diagrammi di Venn standard. La figura 2, riga 1, colonne 2 e 3 mostra due esempi di diagrammi di Eulero a due insiemi. Le righe 2 e 3 mostrano un sottoinsieme di diagrammi di Eulero a tre insiemi implementati, con la riga 3 che mostra quelli della varietà scalabile. Notiamo che la figura 2 è presentata in bianco e nero per evidenziare le differenze compositive tra i diagrammi, ma i parametri grafici e le personalizzazioni utilizzate nella figura 1 sono pienamente disponibili. Mentre VennDiagram scrive per default la grafica su file TIFF ad alta risoluzione, se il parametro filename è impostato a NULL l’oggetto griglia grezzo può essere restituito e utilizzato in qualsiasi modalità grafica disponibile in R. Il codice per generare tutte le figure è fornito nel file aggiuntivo 3 e un esempio di tutte le parametrizzazioni disponibili è mostrato nel file aggiuntivo 4.

Figura 2
figura2

Casi speciali selezionati del diagramma di Venn e diagrammi di Eulero disegnati dal pacchetto VennDiagram. Riga 1, colonna 1: linee disegnate automaticamente e personalizzabili che ottimizzano la visualizzazione delle aree parziali quando le singole aree parziali diventano troppo piccole nei diagrammi di Venn a due set. Riga 1, colonna 2: un diagramma di Eulero a due insiemi che mostra l’inclusione totale di uno degli insiemi. Riga 1, colonna 3: un diagramma di Eulero a due insiemi che mostra due insiemi distinti. Riga 2, colonna 1: un diagramma di Eulero a tre insiemi dove un insieme non ha elementi discreti. Riga 2, colonna 2: un diagramma di Eulero a tre insiemi dove un insieme non ha elementi discreti ed è totalmente incluso in uno degli altri due insiemi. Riga 2, colonna 3: un diagramma di Eulero a tre insiemi in cui due insiemi non hanno elementi discreti e sono inclusi in un terzo insieme più grande. Riga 3, colonna 1: un diagramma di Eulero a tre insiemi che mostra l’inclusione totale di due insiemi che sono distinti dal terzo insieme. Riga 3, colonna 2: un diagramma di Eulero a tre insiemi dove un insieme è totalmente incluso in un altro insieme, che a sua volta è totalmente incluso nel terzo insieme. Riga 3, colonna 2: un diagramma di Eulero a tre insiemi che mostra tre insiemi distinti. Il codice per generare tutti i diagrammi mostrati qui è incluso nel File Aggiuntivo 3.

Discussione

Durante lo sviluppo del pacchetto VennDiagram, si è scoperto che era impossibile disegnare diagrammi di Venn accurati e in scala con tre insiemi usando i cerchi. Questo enigma è illustrato nel seguente scenario. In un sistema di due cerchi A e B, le distanze tra i centri dei cerchi, dAB, potrebbero essere determinate se le aree (AA e AB rispettivamente) e l’area di intersezione (AA ∩ AB) sono entrambe note. Questo è possibile perché in un sistema di due cerchi un singolo AA ∩ AB corrisponde a un unico valore per dAB. Pertanto, un sistema di tre cerchi A, B e C, dAB, dBC, dAC potrebbe essere calcolato purché AA, AB, AC, AA ∩ AB, AA ∩ AC, AB ∩ AC siano tutti noti. Tuttavia, dAB, dBC, dAC formano un triangolo unico, il che implica che un diagramma di Venn può essere disegnato senza mai conoscere l’intersezione complessiva AA ∩ AB ∩ AC. In altre parole, la dimensione della sovrapposizione tra tutti e tre i cerchi non altera la presentazione dei diagrammi di Venn in scala — l’area è invariata anche se un sistema ha intersezione complessiva zero (cioè AA ∩ AB ∩ AC = 0)! Questo enigma deriva dalla scelta (arbitraria) dei cerchi per rappresentare le dimensioni dell’insieme, che riduce i gradi di libertà di uno. Soluzioni uniche possono essere identificate usando ellissi o poligoni per disegnare i diagrammi di Venn, ma i diagrammi risultanti perderebbero l’immediata riconoscibilità e familiarità associate ai diagrammi di Venn circolari, vanificando il punto di una comoda visualizzazione delle informazioni. I diagrammi non circolari richiederebbero anche algoritmi iterativi per calcolare le posizioni e le dimensioni delle forme, aumentando notevolmente gli oneri computazionali, come è stato discusso da altri. Di conseguenza, il ridimensionamento dei diagrammi di Venn a tre set è disabilitato nel pacchetto VennDiagram. Allo stesso modo, i diagrammi di Venn che contengono più di quattro insiemi non sono stati implementati nel pacchetto VennDiagram perché diventano troppo complessi per una visualizzazione intuitiva.

Un avvertimento generale quando si usano i diagrammi di Eulero è che sebbene essi riducano la complessità grafica di alcuni diagrammi di Venn, le loro forme non tradizionali possono anche essere meno riconoscibili in alcuni casi. Quando sono presenti aree vuote, l’utente deve scegliere tra la familiarità dei diagrammi di Venn e la maggiore precisione dei diagrammi di Eulero. La figura 3 illustra una situazione in cui un diagramma di Venn o un diagramma di Eulero può essere appropriato a seconda delle preferenze dell’utente.

Figura 3
figura3

Un confronto fianco a fianco di un diagramma di Eulero e un diagramma di Venn per gli stessi set ipotetici. A) Il diagramma di Eulero mostra solo le aree non nulle e può quindi essere graficamente più accurato. B) Il diagramma di Venn mostra l’area inesistente come un’area con contenuto zero. Anche se questo non è graficamente accurato, conserva la riconoscibilità di un diagramma di Venn.

Il pacchetto VennDiagram gestisce tutti i diagrammi di Eulero a due set e la maggior parte dei diagrammi di Eulero a tre set concepibili. I diagrammi di Eulero a tre insiemi che non possono essere disegnati usando cerchi o ellissi non sono supportati. Per esempio, un diagramma di Eulero per il caso in cui due insiemi non intersecanti comprendono il terzo insieme non può essere disegnato usando cerchi ed ellissi, sebbene possa essere disegnato usando poligoni. Questo tipo di figura manca di un layout analitico pronto e richiederebbe un adattamento iterativo; non sono disponibili diagrammi di Eulero che richiedano poligoni, ma sono disponibili diagrammi di Venn standard per questi pochi casi non supportati.

Dopo un confronto con altri programmi in grado di generare diagrammi di Venn (Tabella 1), i vantaggi del pacchetto VennDiagram includono:

  • Disegnare diagrammi di Eulero usando cerchi e/o ellissi con due o tre insiemi

  • Offrire maggiore personalizzazione per generare diagrammi più eleganti

  • Disponibilità nel diffusoR

  • Generazione di file TIFF ad alta risoluzione che sono standard nelle pubblicazioni

Tabella 1 Un confronto delle caratteristiche di vari programmi capaci di generare diagrammi di Venn.

Lascia un commento

Il tuo indirizzo email non sarà pubblicato.