VennDiagram: een pakket voor het genereren van sterk aanpasbare Venn en Euler diagrammen in R

Bijna alle grafische opties in het VennDiagram pakket zijn geparametriseerd en aanpasbaar gemaakt. Standaard waarden werden gekozen om zinnige diagrammen te genereren, zodat in eenvoudige gevallen een hoog niveau van aanpassing niet nodig is. Figuur 1 toont de diversiteit van de beschikbare parametriseringen. Er zijn vier grote groepen grafische parameters: vorm-vulling, vorm-lijn, labels en titels. De vormvulling verwijst naar de kleuren binnen elke cirkel of ellips. Alle kleuren die beschikbaar zijn in de R-omgeving kunnen worden gebruikt, en alfa-blending kan per vorm worden aangepast. Vorm-lijnen zijn de lijnen die elke cirkel of ellips omgeven. Ze kunnen volledig afwezig zijn (figuur 1C), effen (figuren 1A en 1B), of van elk ander beschikbaar R lijntype (figuur 1D). Hun kleur kan veranderd worden, en elke vorm kan een aparte set parameters hebben. Labels verwijzen zowel naar de onderschriften die elke cirkel of ellips beschrijven als naar de getallen erin. Ook deze kunnen worden aangepast wat betreft kleur, lettertype en -grootte met elke beschikbare R-parameter. De positie van bijschriften kan ook worden aangepast. Titels, die de hoofdtitel en de ondertitel omvatten, zoals getoond in figuur 1D, kunnen op dezelfde manier worden aangepast als labels.

Figuur 1
figuur1

De vier typen Venn-diagrammen die door het VennDiagram-pakket worden getekend. A) Een Venn-diagram met één reeks met rudimentaire aanpasbare kenmerken, zoals lettergrootte, lettertype en vormvulling. B) Een Venn-diagram met twee sets met meer geavanceerde kenmerken, zoals schalen, individuele vormvulspecificaties en individuele labelplaatsing voor bijschriften. C) Een Venn-diagram bestaande uit drie rijen, met een ander type vorm-lijn (“transparant”) en de optie “tekst” voor het plaatsen van bijschriftenlabels, waarbij de bijschriftenlabels aan gebiedslabels worden bevestigd. D) Een Venn-diagram met vier diagrammen, met een combinatie van alle vorige mogelijkheden plus de mogelijkheid om titels aan te passen. De code om alle hier getoonde diagrammen te genereren is opgenomen in Additional File 3.

Naast deze specifieke grafische elementen, biedt VennDiagram ook vele algemene opties, zoals het schalen, roteren of inverteren van diagrammen. Het schalen van diagrammen is geïmplementeerd met het doel Venn-diagrammen weer te geven waarbij de grafische afmetingen van de deelgebieden (gebieden die aan alle zijden begrensd zijn door krommen en die niet verder kunnen worden onderverdeeld) in feite overeenkomen met de numerieke waarden van het aantal elementen binnen elk gebied. Het schalen van twee-reeks Venn-diagrammen en een select aantal drie-reeks Venn-diagrammen is mogelijk – we bespreken hieronder de uitdagingen om dit mogelijk te maken voor alle drie-reeks gevallen. Het gebruik van schaalvergroting kan er soms toe leiden dat overlappende gebieden te klein zijn voor numerieke labels. Figuur 2, rij 1, kolom 1 toont een programmatisch gegenereerde verbindingslijn die een speciale behandeling van dit geval mogelijk maakt. Automatische herkenning van een groot aantal Eulerdiagrammen is geïmplementeerd, maar deze modus kan worden uitgeschakeld met een functie-aanroep parameter om in plaats daarvan standaard Venn-diagrammen te plotten. Figuur 2, rij 1, kolommen 2 en 3 tonen twee voorbeelden van Euler-diagrammen met twee reeksen. Rij 2 en 3 tonen een subset van geïmplementeerde drie-reeks Eulerdiagrammen, waarbij rij 3 die van de schaalbare variëteit toont. We merken op dat figuur 2 in zwart-wit is weergegeven om de verschillen in samenstelling tussen de diagrammen te benadrukken, maar de grafische parameters en aanpassingen die in figuur 1 zijn gebruikt zijn volledig beschikbaar. Hoewel VennDiagram standaard de grafieken wegschrijft naar hoge-resolutie TIFF bestanden, kan, als de bestandsnaam parameter op NULL wordt gezet, het ruwe rasterobject worden teruggestuurd en gebruikt worden in elke grafische modus die in R beschikbaar is. De code om alle figuren te genereren wordt gegeven in Additional File 3 en een voorbeeld van alle beschikbare parameterisaties wordt getoond in Additional File 4.

Figuur 2
figuur 2

Geselecteerde speciale gevallen van Venn-diagrammen en Eulerdiagrammen getekend door het VennDiagram-pakket. Rij 1, kolom 1: automatisch getekende, aanpasbare lijnen die de weergave van deelgebieden optimaliseren wanneer afzonderlijke deelgebieden te klein worden in Venn-diagrammen met twee reeksen. Rij 1, kolom 2: een Euler-diagram van twee groepen dat de totale insluiting van één van de groepen toont. Rij 1, kolom 3: een Euler-diagram met twee groepen die twee verschillende groepen laten zien. Rij 2, kolom 1: een Euler-diagram met drie groepen, waarbij één groep geen afzonderlijke elementen heeft. Rij 2, kolom 2: een Euler-diagram met drie reeksen, waarbij één reeks geen discrete elementen heeft, maar volledig in één van de twee andere reeksen is opgenomen. Rij 2, kolom 3: een drietallig Euler-diagram waarbij twee verzamelingen geen discrete elementen hebben en in een grotere derde verzameling zijn opgenomen. Rij 3, kolom 1: een Euler-diagram met drie verzamelingen, waarbij twee verzamelingen volledig zijn inbegrepen in de derde verzameling. Rij 3, kolom 2: een Euler-diagram met drie verzamelingen waarin een verzameling volledig is inbegrepen in een andere verzameling, die zelf volledig is inbegrepen in de derde verzameling. Rij 3, kolom 2: een drietallig Euler-diagram met drie verschillende verzamelingen. De code om alle hier getoonde diagrammen te genereren is opgenomen in Additional File 3.

Discussie

Tijdens de ontwikkeling van het VennDiagram-pakket ontdekte men dat het onmogelijk was om nauwkeurige, geschaalde Venn-diagrammen met drie verzamelingen te tekenen met behulp van cirkels. Dit raadsel wordt geïllustreerd in het volgende scenario. In een systeem van twee cirkels A en B kunnen de afstanden tussen de middelpunten van de cirkels, dAB, worden bepaald zolang de oppervlakten (respectievelijk AA en AB) en het snijvlak (AA ∩ AB) beide bekend zijn. Dit is mogelijk omdat in een systeem met twee cirkels een enkele AA ∩ AB overeenkomt met een unieke waarde voor dAB. Daarom zouden in een stelsel van drie cirkels A, B en C, dAB, dBC, dAC kunnen worden berekend zolang AA, AB, AC, AA ∩ AB, AA ∩ AC, AB ∩ AC alle bekend zijn. Echter, dAB, dBC, dAC vormen een unieke driehoek, wat impliceert dat een Venn-diagram kan worden getekend zonder ooit het totale snijpunt AA ∩ AB ∩ AC te kennen. Met andere woorden, de grootte van de overlapping tussen de drie cirkels verandert niets aan de presentatie van geschaalde Venn diagrammen — de oppervlakte blijft onveranderd, zelfs als één systeem een totaal snijpunt van nul heeft (d.w.z. AA ∩ AB ∩ AC = 0)! Dit raadsel is het gevolg van de (arbitraire) keuze van cirkels om de grootte van de verzameling weer te geven, waardoor de vrijheidsgraden met één worden verminderd. Unieke oplossingen kunnen worden geïdentificeerd door ellipsen of veelhoeken te gebruiken om Venn-diagrammen te tekenen, maar de resulterende diagrammen zouden de onmiddellijke herkenbaarheid en vertrouwdheid verliezen die geassocieerd wordt met cirkelvormige Venn-diagrammen, waarmee het punt van een handige weergave van informatie teniet wordt gedaan. Niet-cirkelvormige diagrammen zouden ook iteratieve algoritmen vereisen om de posities en groottes van de vormen te berekenen, waardoor de computationele lasten sterk zouden toenemen, zoals door anderen is besproken. Daarom is het schalen van Venn-diagrammen met drie sets uitgeschakeld in het VennDiagram pakket. Ook Venn diagrammen met meer dan vier sets zijn niet geïmplementeerd in het VennDiagram pakket omdat ze te complex worden voor intuïtieve visualisatie.

Een algemeen voorbehoud bij het gebruik van Euler diagrammen is dat hoewel ze de grafische complexiteit van sommige Venn diagrammen verminderen, hun niet-traditionele vormen ook minder herkenbaar kunnen zijn in sommige gevallen. Wanneer lege gebieden aanwezig zijn, moet de gebruiker kiezen tussen de vertrouwdheid van Venn-diagrammen en de grotere nauwkeurigheid van Eulerdiagrammen. Figuur 3 illustreert een situatie waarin ofwel een Venn-diagram ofwel een Eulerdiagram geschikt kan zijn, afhankelijk van de voorkeuren van de gebruiker.

Figuur 3
figuur 3

Een vergelijking naast elkaar van een Eulerdiagram en een Venn-diagram voor dezelfde hypothetische verzamelingen. A) Het Eulerdiagram toont alleen gebieden die niet nul zijn en kan daarom grafisch nauwkeuriger zijn. B) Het Venn-diagram toont het niet-bestaande gebied als een gebied met nulinhoud. Hoewel dit grafisch niet nauwkeurig is, behoudt het de herkenbaarheid van een Venn-diagram.

Het VennDiagram-pakket behandelt alle Euler-diagrammen van twee verzamelingen en de meerderheid van alle denkbare Euler-diagrammen van drie verzamelingen. Drie-reeks Eulerdiagrammen die niet met cirkels of ellipsen kunnen worden getekend, worden niet ondersteund. Bijvoorbeeld, een Euler diagram voor het geval waar twee niet-doorsnijdende verzamelingen de derde verzameling vormen kan niet getekend worden met cirkels en ellipsen, maar wel met polygonen. Dit type figuur heeft geen kant-en-klare analytische lay-out en zou iteratief passen vereisen; er zijn geen veelhoek-vereisende Euler diagrammen beschikbaar, maar standaard Venn diagrammen zijn beschikbaar voor deze paar niet-ondersteunde gevallen.

Na vergelijking met andere programma’s die Venn-diagrammen kunnen genereren (Tabel 1), zijn de voordelen van het VennDiagram-pakket onder meer:

  • Tekenen van Euler diagrammen met behulp van cirkels en/of ellipsen met twee of drie sets

  • Bieden van een grotere aanpasbaarheid om elegantere diagrammen te genereren

  • Beschikbaarheid in de wijd-gebruikte statistische omgeving

  • Het genereren van hoge resolutie TIFF-bestanden die standaard worden gebruikt in publicaties

Tabel 1 Een vergelijking van de kenmerken van verschillende programma’s waarmee Venn-diagrammen kunnen worden gegenereerd.

Geef een antwoord

Het e-mailadres wordt niet gepubliceerd.