VennDiagram: csomag nagymértékben testreszabható Venn- és Euler-diagramok előállítására R-ben

A VennDiagram csomag szinte minden grafikus opciója paraméterezhető és testre szabható. Az alapértelmezett értékeket úgy választottuk ki, hogy értelmes diagramokat generáljunk, így egyszerű esetekben nincs szükség magas szintű testreszabásra. Az 1. ábra rávilágít a rendelkezésre álló paraméterezések sokféleségére. Négy fő grafikus paramétercsoport létezik: shape-fill, shape-line, címkék és címek. A shape-fill az egyes körökön vagy ellipsziseken belüli színekre utal. Az R-környezetben elérhető összes szín használható, és az alfa-felhúzás alakzatonként is beállítható. Az alakzat-vonalak az egyes köröket vagy ellipsziseket körülvevő vonalak. Ezek teljesen hiányozhatnak (1C. ábra), lehetnek egyszínűek (1A. és 1B. ábra), vagy bármilyen más R-vonal-típusúak (1D. ábra). Színük megváltoztatható, és minden alakzatnak külön paraméterkészlete lehet. A címkék mind az egyes köröket vagy ellipsziseket leíró feliratokra, mind a bennük lévő számokra vonatkoznak. Ezek is testre szabhatók a szín, a betűtípus és a betűméret tekintetében bármely rendelkezésre álló R paraméterrel. A feliratcímkék pozíciója is testre szabható. A címek, amelyek az 1D ábrán bemutatott módon a főcímet és az alcímet tartalmazzák, ugyanúgy testre szabhatók, mint a címkék.

1. ábra
1. ábra

A VennDiagram csomag által rajzolt négyféle Venn-diagram. A) Egy egyhalmazos Venn-diagram, amely olyan kezdetleges testreszabható funkciókat mutat, mint a címke betűmérete, a címke betűszínvonala és az alakkitöltés. B) Egy kétkészletű Venn-diagram, amely olyan fejlettebb funkciókat mutat, mint a méretezés, az egyedi alakkitöltés és az egyedi feliratcímkék elhelyezése. C) Egy háromkészletű Venn-diagram, amely egy másik alakzatvonaltípust (“átlátszó”) és a feliratcímkék elhelyezésének “szöveg” opcióját mutatja, ahol a feliratcímkék a területcímkékhez vannak csatolva. D) Egy négykészletű Venn-diagram, amely az összes előző funkció kombinációját mutatja, valamint a címek testreszabásának lehetőségét. Az itt látható összes diagram létrehozásához szükséges kódot a 3. kiegészítő fájl tartalmazza.

A VennDiagram az említett konkrét grafikai elemeken túl számos általános lehetőséget is kínál, például a diagramok méretezését, elforgatását vagy megfordítását. A diagram skálázását azzal a céllal valósítottuk meg, hogy olyan Venn-diagramokat jelenítsünk meg, amelyekben a részterületek (minden oldalról görbékkel határolt és tovább nem tagolható területek) grafikus méretei ténylegesen megfelelnek az egyes területeken belüli elemek számszerű értékeinek. A két halmazból álló Venn-diagramok és néhány kiválasztott három halmazból álló Venn-diagram skálázása lehetséges – alább tárgyaljuk, hogy ez milyen kihívásokkal jár az összes három halmazból álló esetben. A méretezés használata néha ahhoz vezethet, hogy az átfedő területek túl kicsik lesznek a numerikus címkékhez. A 2. ábra 1. sorának 1. oszlopa egy programozottan generált összekötő vonalat mutat, amely lehetővé teszi ennek az esetnek a speciális kezelését. Nagyszámú Euler-diagram automatikus felismerése van implementálva, de ez a mód egy függvényhívási paraméterrel kikapcsolható, hogy helyette szabványos Venn-diagramokat lehessen ábrázolni. A 2. ábra 1. sorának 2. és 3. oszlopa két példát mutat két halmaz Euler-diagramra. A 2. és 3. sor az implementált háromhalmazos Euler-diagramok egy részhalmazát mutatja, a 3. sor a skálázható fajtájúakat. Megjegyezzük, hogy a 2. ábrát fekete-fehérben mutatjuk be, hogy kiemeljük a diagramok közötti kompozíciós különbségeket, de az 1. ábrán használt grafikus paraméterek és testreszabások teljes mértékben rendelkezésre állnak. Bár a VennDiagram alapértelmezés szerint nagy felbontású TIFF-fájlokba írja a grafikákat, ha a filename paramétert NULL-ra állítjuk, a nyers rácsobjektum visszaküldhető és az R-ben elérhető bármely grafikus módban felhasználható. Az összes ábrát generáló kódot a 3. kiegészítő fájl tartalmazza, a 4. kiegészítő fájlban pedig az összes elérhető paraméterezés példája látható.

2. ábra
2. ábra

A VennDiagram csomag által rajzolt Venn-diagram speciális esetei és Euler-diagramok. 1. sor, 1. oszlop: automatikusan rajzolt, testre szabható vonalak, amelyek optimalizálják a részterületek megjelenítését, amikor az egyes részterületek túl kicsik lesznek a két halmazból álló Venn-diagramokban. 1. sor, 2. oszlop: két halmazból álló Euler-diagram, amely az egyik halmaz teljes bevonását mutatja. sor, 3. oszlop: két halmazból álló Euler-diagram, amely két különböző halmazt mutat. 2. sor, 1. oszlop: háromhalmazos Euler-diagram, ahol az egyik halmaznak nincsenek különálló elemei. 2. sor, 2. oszlop: háromhalmazos Euler-diagram, ahol az egyik halmaznak nincsenek diszkrét elemei, de a másik két halmaz egyikében teljesen benne van. 2. sor, 3. oszlop: egy háromhalmazos Euler-diagram, ahol két halmaznak nincsenek diszkrét elemei, és egy nagyobb harmadik halmaz tartalmazza őket. 3. sor, 1. oszlop: egy háromhalmazos Euler-diagram, amely két olyan halmaz teljes befogadását mutatja, amelyek különböznek a harmadik halmaztól. sor, 2. oszlop: egy három halmazból álló Euler-diagram, ahol egy halmaz teljesen benne van egy másik halmazban, amely maga is teljesen benne van a harmadik halmazban. 3. sor, 2. oszlop: háromhalmazos Euler-diagram, amely három különböző halmazt mutat. Az itt látható összes diagram generálásához szükséges kód a 3. kiegészítő fájlban található.

Diszkusszió

A VennDiagram csomag fejlesztése során felfedezték, hogy három halmazt tartalmazó, pontos, méretarányos Venn-diagramokat nem lehet körökkel rajzolni. Ezt a rejtélyt a következő forgatókönyv szemlélteti. Egy két A és B körből álló rendszerben a körök középpontjai közötti távolságot, dAB, meg lehetett határozni, amennyiben a területek (AA, illetve AB) és a metszési terület (AA ∩ AB) egyaránt ismert. Ez azért lehetséges, mert a kétkörös rendszerben egyetlen AA ∩ AB megfelel a dAB egyedi értékének. Ezért egy három körből álló A, B és C rendszerben dAB, dBC, dAC kiszámítható, amennyiben AA, AB, AC, AA ∩ AB, AA ∩ AC, AA ∩ AC, AB ∩ AC mind ismertek. A dAB, dBC, dAC azonban egyedi háromszöget alkotnak, ami azt jelenti, hogy a Venn-diagram megrajzolható anélkül, hogy az AA ∩ AB ∩ AC teljes metszetét ismernénk. Más szóval, a három kör közötti átfedés nagysága nem változtatja meg a méretezett Venn-diagramok ábrázolását — a terület akkor is változatlan marad, ha az egyik rendszer teljes metszete nulla (azaz AA ∩ AB ∩ AC = 0)! Ez a rejtély abból adódik, hogy a köröket (önkényesen) választottuk a halmazméret ábrázolására, ami a szabadságfokokat eggyel csökkenti. Egyedi megoldások azonosíthatók, ha ellipsziseket vagy sokszögeket használunk a Venn-diagramok rajzolásához, de az így kapott diagramok elveszítenék a kör alakú Venn-diagramokhoz kapcsolódó azonnali felismerhetőséget és ismertséget, ami meghiúsítja az információ kényelmes megjelenítésének célját. A nem kör alakú diagramokhoz iteratív algoritmusokra lenne szükség az alakzatok pozícióinak és méreteinek kiszámításához, ami jelentősen megnövelné a számítási terheket, amint azt már mások is megvitatták. Következésképpen a VennDiagram csomagban a három halmazból álló Venn-diagramok méretezése le van tiltva. Hasonlóképpen, a négynél több halmazt tartalmazó Venn-diagramok nem lettek implementálva a VennDiagram csomagban, mert túl bonyolulttá válnak az intuitív megjelenítéshez.

Az Euler-diagramok használatakor általános figyelmeztetés, hogy bár csökkentik egyes Venn-diagramok grafikai bonyolultságát, a nem hagyományos alakzatok bizonyos esetekben kevésbé felismerhetőek is lehetnek. Ha üres területek vannak jelen, a felhasználónak választania kell a Venn-diagramok ismertsége és az Euler-diagramok nagyobb pontossága között. A 3. ábra egy olyan helyzetet szemléltet, amikor a felhasználó preferenciáitól függően vagy a Venn-, vagy az Euler-diagram lehet megfelelő.

3. ábra
3. ábra

Egy Euler-diagram és egy Venn-diagram egymás melletti összehasonlítása ugyanazon hipotetikus halmazok esetében. A) Az Euler-diagram csak a nem nulla területeket mutatja, ezért grafikailag pontosabb lehet. B) A Venn-diagram a nem létező területet nulla tartalmú területként mutatja. Ez ugyan grafikailag nem pontos, de megőrzi a Venn-diagram felismerhetőségét.

A VennDiagram csomag kezeli az összes kéthalmazos Euler-diagramot és az összes elképzelhető háromhalmazos Euler-diagram többségét. Az olyan háromhalmazos Euler-diagramok, amelyek nem rajzolhatók körökkel vagy ellipszisekkel, nem támogatottak. Például egy Euler-diagram arra az esetre, amikor két nem metsző halmaz alkotja a harmadik halmazt, nem rajzolható körökkel és ellipszisekkel, bár poligonokkal megrajzolható. Az ilyen típusú ábráknak nincs kész analitikus elrendezése, és iteratív illesztést igényelne; poligonokat igénylő Euler-diagramok nem állnak rendelkezésre, de a szabványos Venn-diagramok rendelkezésre állnak erre a néhány nem támogatott esetre.

A Venn-diagram generálására alkalmas más programokkal való összehasonlítás után (1. táblázat) a VennDiagram csomag előnyei a következők:

  • Euler-diagramok rajzolása körök és/vagy ellipszisek használatával, két vagy három halmazzal

  • Nagyobb testreszabhatóságot kínál az elegánsabb diagramok generálásához

  • Elérhetőség a széles körben-használt R statisztikai környezetben

  • A publikációkban szokásos nagy felbontású TIFF fájlok generálása

1. táblázat A Venn-diagramok generálására alkalmas különböző programok jellemzőinek összehasonlítása.

Vélemény, hozzászólás?

Az e-mail-címet nem tesszük közzé.