VennDiagram: ett paket för generering av Venn- och Euler-diagram som kan anpassas i hög grad i R

Nästan alla grafiska alternativ i VennDiagram-paketet har parametriserats och gjorts anpassningsbara. Standardvärden valdes för att generera vettiga diagram, så i enkla fall krävs inte en hög nivå av anpassning. Figur 1 belyser mångfalden av tillgängliga parametriseringar. Det finns fyra stora grupper av grafiska parametrar: shape-fill, shape-line, labels och titles. Shape-fill avser färgerna inom varje cirkel eller ellips. Alla färger som finns tillgängliga i R-miljön kan användas, och alfa-blending kan justeras per form. Shape-lines är de linjer som omger varje cirkel eller ellips. De kan vara helt frånvarande (figur 1C), heldragna (figurerna 1A och 1B) eller någon annan tillgänglig R-linjetyp (figur 1D). Deras färg kan ändras och varje form kan ha en separat uppsättning parametrar. Etiketter hänvisar både till de rubriker som beskriver varje cirkel eller ellips och till siffrorna i dem. Även dessa kan anpassas när det gäller färg, typsnittstyp och typsnittsstorlek med alla tillgängliga R-parametrar. Positionerna för etiketterna kan också anpassas. Titlar, som inkluderar huvudtitel och undertitel som demonstreras i figur 1D, kan också anpassas på samma sätt som etiketter.

Figur 1
figure1

De fyra typerna av Venndiagram som ritas av paketet VennDiagram. A) Ett Venndiagram med en uppsättning som visar rudimentära anpassningsbara funktioner som t.ex. teckenstorlek för etiketter, teckenbild för etiketter och formfyllning. B) Ett Venndiagram med två uppsättningar som visar mer avancerade funktioner som skalning, individuella specifikationer för formfyllning och individuell placering av etiketter för bildtexter. C) Ett Venn-diagram med tre uppsättningar som visar en annan typ av formlinje (”transparent”) och alternativet ”text” för placering av textmärken, där textmärkena är kopplade till områdesmärkena. D) Ett Venn-diagram med fyra uppsättningar som visar en kombination av alla tidigare funktioner plus möjligheten att anpassa titlar. Koden för att generera alla diagram som visas här ingår i Additional File 3.

Bortom dessa specifika grafiska element erbjuder VennDiagram också många allmänna alternativ, t.ex. skalning, rotation eller inversion av diagram. Skalning av diagrammen genomfördes med målet att visa Venn-diagram där de grafiska storlekarna på de partiella områdena (områden som avgränsas på alla sidor av kurvor och som inte kan delas in ytterligare) faktiskt motsvarar de numeriska värdena på antalet element inom varje område. Skalning av Venn-diagram med två uppsättningar och ett utvalt antal Venn-diagram med tre uppsättningar är möjlig – vi diskuterar nedan utmaningarna med att göra detta möjligt för alla fall med tre uppsättningar. Användningen av skalning kan ibland leda till att överlappande områden är för små för numeriska etiketter. Figur 2, rad 1, kolumn 1 visar en programmatiskt genererad anslutningslinje som gör det möjligt att hantera detta fall på ett speciellt sätt. Automatisk igenkänning av ett stort antal Euler-diagram är implementerad, men detta läge kan avaktiveras med en parameter för funktionsanrop för att i stället plotta vanliga Venn-diagram. Figur 2, rad 1, kolumnerna 2 och 3 visar två exempel på Euler-diagram med två uppsättningar. Raderna 2 och 3 visar en delmängd av de implementerade Euler-diagrammen med tre uppsättningar, där rad 3 visar de skalbara varianterna. Vi noterar att figur 2 presenteras i svartvitt för att belysa kompositionsskillnader mellan diagrammen, men de grafiska parametrar och anpassningar som används i figur 1 är fullt tillgängliga. VennDiagram skriver som standard grafik till högupplösta TIFF-filer, men om filnamnsparametern sätts till NULL kan det råa rutnätobjektet returneras och användas i alla grafiklägen som finns tillgängliga i R. Koden för att generera alla figurer finns i Additional File 3 och ett exempel på alla tillgängliga parameteriseringar visas i Additional File 4.

Figur 2
figur2

Utvalda specialfall av Venndiagram och Eulerdiagram som ritats av paketet VennDiagram. Rad 1, kolumn 1: Automatiskt dragna, anpassningsbara linjer som optimerar visningen av delområden när enskilda delområden blir för små i Venndiagram med två uppsättningar. Rad 1, kolumn 2: ett Euler-diagram med två uppsättningar som visar att en av uppsättningarna är helt inkluderad. Rad 1, kolumn 3: ett Euler-diagram med två uppsättningar som visar två olika uppsättningar. Rad 2, kolumn 1: ett Euler-diagram med tre uppsättningar där en uppsättning inte har några separata element. Rad 2, kolumn 2: ett Euler-diagram med tre uppsättningar där en uppsättning utan diskreta element är helt inkluderad i en av de två andra uppsättningarna. Rad 2, kolumn 3: Ett Euler-diagram med tre uppsättningar där två uppsättningar inte har några diskreta element och ingår i en större tredje uppsättning. Rad 3, kolumn 1: Ett Euler-diagram med tre uppsättningar som visar att två uppsättningar som är skilda från den tredje uppsättningen är helt inkluderade. Rad 3, kolumn 2: Ett Euler-diagram med tre mängder där en mängd är helt inkluderad i en annan mängd, som i sin tur är helt inkluderad i den tredje mängden. Rad 3, kolumn 2: ett Euler-diagram med tre uppsättningar som visar tre olika uppsättningar. Koden för att generera alla diagram som visas här finns i Additional File 3.

Diskussion

Under utvecklingen av paketet VennDiagram upptäcktes det att det var omöjligt att rita korrekta, skalenliga Venndiagram med tre uppsättningar med hjälp av cirklar. Denna gåta illustreras i följande scenario. I ett system med två cirklar A och B kan avstånden mellan cirklarnas centra, dAB, bestämmas så länge som areorna (AA respektive AB) och skärningsområdet (AA ∩ AB) båda är kända. Detta är möjligt eftersom ett enda AA ∩ AB i ett system med två cirklar motsvarar ett unikt värde för dAB. Därför kan ett system med tre cirklar A, B och C, dAB, dBC, dAC beräknas så länge AA, AB, AC, AA ∩ AB, AA ∩ AC, AB ∩ AC, AB ∩ AC alla är kända. dAB, dBC, dAC bildar dock en unik triangel, vilket innebär att ett Venn-diagram kan ritas utan att man någonsin känner till den totala skärningspunkten AA ∩ AB ∩ AC. Med andra ord ändrar inte storleken på överlappningen mellan alla tre cirklarna presentationen av skalade Venn-diagram – arean är oförändrad även om ett system har noll total skärningspunkt (dvs. AA ∩ AB ∩ AC = 0)! Denna gåta beror på det (godtyckliga) valet av cirklar för att representera mängdstorlek, vilket minskar frihetsgraderna med en. Unika lösningar kan identifieras genom att använda ellipser eller polygoner för att rita Venn-diagrammen, men de resulterande diagrammen skulle förlora den omedelbara igenkännbarhet och förtrogenhet som förknippas med cirkulära Venn-diagram, vilket motverkar poängen med en bekväm visning av information. Icke-cirkulära diagram skulle också kräva iterativa algoritmer för att beräkna formernas positioner och storlekar, vilket skulle öka den databehandlingsmässiga bördan avsevärt, vilket har diskuterats av andra . Därför är skalning av Venndiagram med tre uppsättningar inaktiverad i paketet VennDiagram. På samma sätt har Venndiagram som innehåller mer än fyra uppsättningar inte implementerats i VennDiagram-paketet eftersom de blir för komplexa för en intuitiv visualisering.

En allmän varning vid användning av Euler-diagram är att även om de reducerar den grafiska komplexiteten hos vissa Venn-diagram, kan deras otraditionella former också vara mindre igenkännliga i vissa fall. När det finns tomma områden måste användaren välja mellan Venn-diagrammens förtrogenhet och Euler-diagrammens ökade noggrannhet. Figur 3 illustrerar en situation där antingen ett Venn- eller ett Euler-diagram kan vara lämpligt beroende på användarens preferenser.

Figur 3
figur3

En jämförelse sida vid sida av ett Euler-diagram och ett Venn-diagram för samma hypotetiska mängder. A) Euler-diagrammet visar endast områden som inte är noll och kan därför vara mer grafiskt korrekt. B) Venndiagrammet visar det icke-existerande området som ett område med noll innehåll. Även om detta inte är grafiskt korrekt, bevarar det igenkänningsbarheten hos ett Venndiagram.

Paketet VennDiagram hanterar alla Euler-diagram med två uppsättningar och majoriteten av alla tänkbara Euler-diagram med tre uppsättningar. Euler-diagram med tre uppsättningar som inte kan ritas med hjälp av cirklar eller ellipser stöds inte. Exempelvis kan ett Euler-diagram för det fall där två icke-skärande mängder utgör den tredje mängden inte ritas med hjälp av cirklar och ellipser, även om det kan ritas med hjälp av polygoner. Denna typ av figur saknar en färdig analytisk layout och skulle kräva iterativ anpassning. Inga Euler-diagram som kräver polygoner finns tillgängliga, men vanliga Venn-diagram finns tillgängliga för dessa få fall som inte stöds.

Efter en jämförelse med andra program som kan generera Venndiagram (tabell 1), kan man konstatera att fördelarna med paketet VennDiagram är följande:

  • Ritning av Euler-diagram med hjälp av cirklar och/eller ellipser med två eller tre uppsättningar

  • Genererar större anpassningsmöjligheter för att generera mer eleganta diagram

  • Tillgänglighet i det allmänt förekommande-R statistisk miljö

  • Genererar högupplösta TIFF-filer som är standard i publikationer

Tabell 1 En jämförelse av funktionerna hos olika program som kan generera Venn-diagram.

Lämna ett svar

Din e-postadress kommer inte publiceras.