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.
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.
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.
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