VennDiagram: a package for the generation of highly-customizable Venn and Euler diagrams in R

Næsten alle grafiske muligheder i VennDiagram-pakken er blevet parameteriseret og gjort tilpasselige. Standardværdier blev valgt for at generere fornuftige diagrammer, så i enkle tilfælde er et højt niveau af tilpasning ikke påkrævet. Figur 1 fremhæver mangfoldigheden af de tilgængelige parametriseringer. Der findes fire store grupper af grafiske parametre: shape-fill, shape-line, labels og titles. Shape-fill henviser til farverne inden for hver cirkel eller ellipse. Alle farver, der er tilgængelige i R-miljøet, kan anvendes, og alfa-blending kan justeres pr. form. Shape-lines er de linjer, der omgiver hver cirkel eller ellipse. De kan være helt fraværende (figur 1C), massive (figur 1A og 1B) eller enhver anden R-linjetype, der er tilgængelig (figur 1D). Deres farve kan ændres, og hver form kan have et separat sæt af parametre. Etiketter henviser både til de billedtekster, der beskriver hver cirkel eller ellipse, og til tallene i dem. Igen kan disse tilpasses med hensyn til farve, skrifttype og skriftstørrelse med enhver tilgængelig R-parameter. Placeringen af etiketterne kan også tilpasses. Titler, som omfatter hovedtitel og undertitel som vist i figur 1D, kan også tilpasses på samme måde som etiketter.

Figur 1
figure1

De fire typer Venn-diagrammer, der tegnes af pakken VennDiagram. A) Et Venn-diagram med én sætning, der viser rudimentære funktioner, der kan tilpasses, såsom skriftstørrelse for etiketter, skrifttype for etiketter og formudfyldning. B) Et Venn-diagram med to sæt, der viser mere avancerede funktioner som f.eks. skalering, individuelle specifikationer for formudfyldning og individuel placering af etiketter til billedtekster. C) Et Venn-diagram med tre sæt, der viser en anden formlinjetype (“gennemsigtig”) og “tekst”-muligheden for placering af etiketter, hvor etiketterne er knyttet til områdeetiketter. D) Et Venn-diagram med fire sæt, der viser en kombination af alle de foregående funktioner plus muligheden for at tilpasse titler. Koden til at generere alle de her viste diagrammer er inkluderet i Additional File 3.

Bortset fra disse specifikke grafiske elementer tilbyder VennDiagram også mange generelle muligheder, f.eks. skalering, rotation eller inversion af diagrammer. Skaleringen af diagrammer blev implementeret med det formål at vise Venn-diagrammer, hvor de grafiske størrelser af delområderne (områder, der er afgrænset på alle sider af kurver, og som ikke kan underopdeles yderligere) faktisk svarer til de numeriske værdier af antallet af elementer inden for hvert område. Det er muligt at skalere Venn-diagrammer med to sæt og et udvalgt antal Venn-diagrammer med tre sæt – vi diskuterer nedenfor de udfordringer, der er forbundet med at gøre dette muligt for alle tre-sæt tilfælde. Anvendelse af skalering kan undertiden føre til, at overlappende områder er for små til numeriske etiketter. Figur 2, række 1, kolonne 1, viser en programmæssigt genereret forbindelseslinje, der gør det muligt at håndtere dette tilfælde på en særlig måde. Der er implementeret automatisk genkendelse af et stort antal Euler-diagrammer, men denne tilstand kan deaktiveres med en parameter for funktionsopkald for i stedet at plotte standard-Venn-diagrammer. Figur 2, række 1, kolonne 2 og 3 viser to eksempler på Euler-diagrammer med to sæt. Række 2 og 3 viser en delmængde af implementerede Euler-diagrammer med tre sæt, hvor række 3 viser dem af den skalerbare variant. Vi bemærker, at figur 2 er præsenteret i sort/hvid for at fremhæve de kompositoriske forskelle mellem diagrammerne, men de grafiske parametre og tilpasninger, der anvendes i figur 1, er fuldt ud tilgængelige. Mens VennDiagram som standard skriver grafikken til TIFF-filer i høj opløsning, kan det rå gitterobjekt returneres og bruges i enhver grafiktilstand, der er tilgængelig i R, hvis filename-parameteren er sat til NULL. Koden til at generere alle figurer findes i Additional File 3, og et eksempel på alle tilgængelige parameteriseringer er vist i Additional File 4.

Figur 2
figur2

Udvalgte Venndiagram-specialtilfælde og Euler-diagrammer tegnet af VennDiagram-pakken. Række 1, kolonne 1: automatisk tegnede, tilpassede linjer, der optimerer visningen af delområder, når de enkelte delområder bliver for små i Venn-diagrammer med to sæt. Række 1, kolonne 2: et Euler-diagram med to sæt, der viser den totale inddragelse af et af sættene. Række 1, kolonne 3: et Euler-diagram med to sæt, der viser to forskellige sæt. Række 2, kolonne 1: et Euler-diagram med tre sæt, hvor det ene sæt ikke har nogen særskilte elementer. Række 2, kolonne 2: et Euler-diagram med tre sæt, hvor det ene sæt ikke har nogen diskrete elementer og er helt inkluderet i et af de to andre sæt. Række 2, kolonne 3: et Euler-diagram med tre sæt, hvor to sæt ikke har nogen diskrete elementer og er inkluderet i et større tredje sæt. Række 3, kolonne 1: et Euler-diagram med tre sæt, der viser, at to sæt er totalt inkluderet i det tredje sæt, som er adskilt fra det tredje sæt. Række 3, kolonne 2: et Euler-diagram med tre sæt, hvor et sæt er totalt inkluderet i et andet sæt, som selv er totalt inkluderet i det tredje sæt. Række 3, kolonne 2: et Euler-diagram med tre sæt, der viser tre forskellige sæt. Koden til at generere alle de her viste diagrammer er inkluderet i Additional File 3.

Diskussion

Under udviklingen af pakken VennDiagram blev det opdaget, at det var umuligt at tegne nøjagtige, skalerede Venn-diagrammer med tre sæt ved hjælp af cirkler. Denne gåde er illustreret i følgende scenarie. I et system med to cirkler A og B kunne afstandene mellem cirklernes centre, dAB, bestemmes, så længe arealerne (henholdsvis AA og AB) og skæringspunktet (AA ∩ AB) begge er kendt. Dette er muligt, fordi et enkelt AA ∩ AB i et system med to cirkler svarer til en entydig værdi for dAB. Derfor kan man i et system med tre cirkler A, B og C beregne dAB, dBC, dAC, så længe AA, AB, AC, AA ∩ AB, AA ∩ AC, AB ∩ AC, AB ∩ AC alle er kendt. Imidlertid udgør dAB, dBC, dAC en unik trekant, hvilket indebærer, at et Venn-diagram kan tegnes uden at man nogensinde kender det samlede skæringspunkt AA ∩ AB ∩ AC. Med andre ord ændrer størrelsen af overlapningen mellem alle tre cirkler ikke præsentationen af de skalerede Venn-diagrammer – arealet er uændret, selv om det ene system har nul samlet skæringspunkt (dvs. AA ∩ AB ∩ AC = 0)! Denne gåde skyldes det (arbitrære) valg af cirkler til at repræsentere mængdens størrelse, hvilket reducerer frihedsgraderne med én. Unikke løsninger kan identificeres ved at bruge ellipser eller polygoner til at tegne Venn-diagrammer, men de resulterende diagrammer ville miste den øjeblikkelige genkendelighed og fortrolighed, der er forbundet med cirkulære Venn-diagrammer, hvilket ville modvirke formålet med en praktisk visning af information. Ikke-cirkulære diagrammer ville også kræve iterative algoritmer til beregning af figurernes positioner og størrelser, hvilket i høj grad ville øge den beregningsmæssige byrde, som det er blevet diskuteret af andre . Derfor er skalering af Venn-diagrammer med tre sæt Venn-diagrammer deaktiveret i pakken VennDiagram. Tilsvarende blev Venn-diagrammer, der indeholder mere end fire sæt, ikke implementeret i VennDiagram-pakken, fordi de bliver for komplekse til intuitiv visualisering.

En generel advarsel ved brug af Euler-diagrammer er, at selv om de reducerer den grafiske kompleksitet af nogle Venn-diagrammer, kan deres utraditionelle former også være mindre genkendelige i nogle tilfælde. Når der er tomme områder til stede, må brugeren vælge mellem det velkendte ved Venn-diagrammer og den øgede nøjagtighed ved Euler-diagrammer. Figur 3 illustrerer en situation, hvor enten et Venn- eller et Euler-diagram kan være hensigtsmæssigt afhængigt af brugerens præferencer.

Figur 3
figur3

En side-by-side sammenligning af et Euler-diagram og et Venn-diagram for de samme hypotetiske mængder. A) Euler-diagrammet viser kun områder, der ikke er nul, og kan derfor være mere grafisk korrekt. B) Venn-diagrammet viser det ikke-eksisterende område som et område med indhold på nul. Selv om dette ikke er grafisk korrekt, bevarer det genkendeligheden af et Venn-diagram.

Pakken VennDiagram håndterer alle Euler-diagrammer med to sæt og de fleste af alle tænkelige Euler-diagrammer med tre sæt. Tre-sæt Euler-diagrammer, som ikke kan tegnes ved hjælp af cirkler eller ellipser, understøttes ikke. F.eks. kan et Euler-diagram for det tilfælde, hvor to ikke-skærende mængder udgør den tredje mængde, ikke tegnes ved hjælp af cirkler og ellipser, selv om det kan tegnes ved hjælp af polygoner. Denne type figurer har ikke noget analytisk layout og ville kræve iterativ tilpasning; der findes ingen Euler-diagrammer, der kræver polygoner, men der findes standard-Venn-diagrammer for disse få tilfælde, der ikke understøttes.

Efter sammenligning med andre programmer, der er i stand til at generere Venn-diagrammer (Tabel 1), omfatter fordelene ved VennDiagram-pakken bl.a. følgende:

  • Tegning af Euler-diagrammer ved hjælp af cirkler og/eller ellipser med to eller tre sæt

  • Giver større tilpasningsmuligheder for at generere mere elegante diagrammer

  • Fået tilgængelighed i den udbredte-anvendte statistiske miljø R

  • Genererer TIFF-filer i høj opløsning, som er standard i publikationer

Tabel 1 En sammenligning af funktionerne i forskellige programmer, der kan generere Venn-diagrammer.

Skriv et svar

Din e-mailadresse vil ikke blive publiceret.