VennDiagram: balíček pro generování vysoce přizpůsobitelných Vennových a Eulerových diagramů v R

Téměř všechny grafické možnosti v balíčku VennDiagram byly parametrizovány a přizpůsobeny. Výchozí hodnoty byly zvoleny tak, aby se generovaly rozumné diagramy, takže v jednoduchých případech není nutná vysoká úroveň přizpůsobení. Obrázek 1 poukazuje na rozmanitost dostupných parametrizací. Existují čtyři hlavní skupiny grafických parametrů: výplň tvaru, linie tvaru, popisky a nadpisy. Výplň tvaru se týká barev uvnitř každého kruhu nebo elipsy. Lze použít všechny barvy dostupné v prostředí R a na základě jednotlivých tvarů lze nastavit alfa-blending. Shape-lines jsou čáry, které obklopují každý kruh nebo elipsu. Mohou zcela chybět (obrázek 1C), mohou být plné (obrázky 1A a 1B) nebo jakýkoli jiný typ čar, který je v R k dispozici (obrázek 1D). Jejich barvu lze měnit a každý tvar může mít samostatnou sadu parametrů. Popisky se vztahují jak k popiskům popisujícím jednotlivé kružnice nebo elipsy, tak k číslům v nich. Ty lze opět přizpůsobit z hlediska barvy, typu a velikosti písma pomocí libovolného dostupného parametru R. Přizpůsobit lze také polohu popisků. Stejným způsobem jako popisky lze přizpůsobit i nadpisy, které zahrnují hlavní nadpis a podnadpis, jak ukazuje obrázek 1D.

Obrázek 1
obrázek1

Čtyři typy Vennových diagramů nakreslených pomocí balíčku VennDiagram. A) Jednomístný Vennův diagram zobrazující základní přizpůsobitelné funkce, jako je velikost písma štítku, tvář písma štítku a výplň tvaru. B) Vennův diagram se dvěma sadami zobrazující pokročilejší funkce, jako je škálování, individuální specifikace výplně tvaru a individuální umístění popisku. C) Vennův diagram se třemi sadami zobrazující jiný typ tvarové čáry („transparentní“) a možnost „textového“ umístění popisků, kdy jsou popisky připojeny k popiskům oblastí. D) Vennův diagram se čtyřmi sadami zobrazující kombinaci všech předchozích funkcí a navíc možnost přizpůsobení nadpisů. Kód pro generování všech zde zobrazených diagramů je obsažen v Doplňkovém souboru 3.

Kromě těchto specifických grafických prvků nabízí VennDiagram také mnoho obecných možností, jako je škálování, otáčení nebo inverze diagramů. Škálování diagramů bylo implementováno s cílem zobrazovat Vennovy diagramy, kde grafické velikosti dílčích oblastí (oblastí ohraničených ze všech stran křivkami, které nelze dále dělit) skutečně odpovídají číselným hodnotám počtu prvků v jednotlivých oblastech. Škálování Vennových diagramů se dvěma množinami a vybraných Vennových diagramů se třemi množinami je možné – níže diskutujeme o problémech, které je třeba řešit, aby to bylo možné ve všech případech tří množin. Použití škálování může někdy vést k tomu, že překrývající se oblasti jsou příliš malé pro číselné označení. Obrázek 2, řádek 1, sloupec 1 ukazuje programově generovanou spojovací čáru, která umožňuje speciální řešení tohoto případu. Je implementováno automatické rozpoznávání velkého počtu Eulerových diagramů, ale tento režim lze deaktivovat parametrem volání funkce a místo toho vykreslit standardní Vennovy diagramy. Obrázek 2, řádek 1, sloupce 2 a 3 ukazují dva příklady Eulerových diagramů se dvěma množinami. Řádky 2 a 3 zobrazují podmnožinu implementovaných Eulerových diagramů se třemi množinami, přičemž řádek 3 zobrazuje diagramy škálovatelné variety. Poznamenáváme, že obrázek 2 je prezentován černobíle, aby vynikly kompoziční rozdíly mezi diagramy, ale grafické parametry a úpravy použité na obrázku 1 jsou plně k dispozici. Zatímco VennDiagram ve výchozím nastavení zapisuje grafiku do souborů TIFF s vysokým rozlišením, pokud je parametr filename nastaven na NULL, lze vrátit surový objekt mřížky a použít jej v libovolném grafickém režimu dostupném v R. Kód pro generování všech obrázků je uveden v Doplňkovém souboru 3 a příklad všech dostupných parametrizací je uveden v Doplňkovém souboru 4.

Obrázek 2
obrázek2

Vybrané speciální případy Vennových diagramů a Eulerovy diagramy nakreslené pomocí balíčku VennDiagram. Řádek 1, sloupec 1: automaticky kreslené, přizpůsobitelné čáry, které optimalizují zobrazení dílčích oblastí, když se jednotlivé dílčí oblasti stanou příliš malými ve dvousložkových Vennových diagramech. Řádek 1, sloupec 2: Eulerův diagram dvou množin zobrazující úplné zahrnutí jedné z množin. Řádek 1, sloupec 3: Eulerův diagram dvou množin zobrazující dvě odlišné množiny. Řádek 2, sloupec 1: Eulerův diagram tří množin, kde jedna množina nemá žádné diskrétní prvky. Řádek 2, sloupec 2: Eulerův diagram tří množin, kde jedna množina nemá žádné diskrétní prvky, je zcela zahrnuta do jedné z ostatních dvou množin. Řádek 2, sloupec 3: Eulerův diagram tří množin, kde dvě množiny nemají žádné diskrétní prvky a jsou zahrnuty do větší třetí množiny. Řádek 3, sloupec 1: Eulerův diagram tří množin zobrazující úplné zahrnutí dvou množin, které jsou odlišné od třetí množiny. Řádek 3, sloupec 2: Eulerův diagram tří množin, kde je jedna množina zcela zahrnuta do druhé množiny, která je sama zcela zahrnuta do třetí množiny. Řádek 3, sloupec 2: Eulerův diagram tří množin zobrazující tři odlišné množiny. Kód pro generování všech zde zobrazených diagramů je obsažen v Doplňkovém souboru 3.

Diskuse

Při vývoji balíku VennDiagram bylo zjištěno, že není možné kreslit přesné, škálované Vennovy diagramy se třemi množinami pomocí kružnic. Tuto hádanku ilustruje následující scénář. V soustavě dvou kružnic A a B lze určit vzdálenosti mezi středy kružnic, dAB, pokud jsou známy jejich plochy (AA, resp. AB) a plocha průsečíku (AA ∩ AB). To je možné, protože v soustavě dvou kružnic odpovídá jediná hodnota AA ∩ AB jedinečné hodnotě dAB. Proto lze pro soustavu tří kružnic A, B a C vypočítat dAB, dBC, dAC, pokud jsou známy hodnoty AA, AB, AC, AA ∩ AB, AA ∩ AC, AB ∩ AC. Avšak dAB, dBC, dAC tvoří jedinečný trojúhelník, což znamená, že Vennův diagram lze nakreslit, aniž bychom znali celkový průsečík AA ∩ AB ∩ AC. Jinými slovy, velikost překryvu všech tří kružnic nemění zobrazení zmenšených Vennových diagramů – plocha se nemění, ani když má jedna soustava nulový celkový průnik (tj. AA ∩ AB ∩ AC = 0)! Tato hádanka vyplývá z (libovolné) volby kruhů pro znázornění velikosti množiny, která snižuje stupně volnosti o jeden. Jednoznačné řešení lze identifikovat použitím elipsy nebo mnohoúhelníků pro vykreslení Vennových diagramů, ale výsledné diagramy by ztratily okamžitou rozpoznatelnost a známost spojenou s kruhovými Vennovými diagramy, což by zmařilo smysl pohodlného zobrazení informací. Nekruhové diagramy by také vyžadovaly iterační algoritmy pro výpočet polohy a velikosti tvarů, což by značně zvýšilo výpočetní zátěž, jak o tom hovořili jiní. Proto je v balíčku VennDiagram vypnuto škálování Vennových diagramů se třemi sadami. Podobně nebyly v balíčku VennDiagram implementovány Vennovy diagramy obsahující více než čtyři množiny, protože se stávají příliš složitými pro intuitivní vizualizaci.

Obecným upozorněním při použití Eulerových diagramů je, že ačkoli snižují grafickou složitost některých Vennových diagramů, jejich netradiční tvary mohou být v některých případech také méně rozpoznatelné. Pokud jsou přítomny prázdné oblasti, musí uživatel volit mezi známostí Vennových diagramů a větší přesností Eulerových diagramů. Obrázek 3 znázorňuje situaci, kdy v závislosti na preferencích uživatele může být vhodný buď Vennův, nebo Eulerův diagram.

Obrázek 3
obrázek3

Srovnání Eulerova a Vennova diagramu vedle sebe pro stejné hypotetické množiny. A) Eulerův diagram zobrazuje pouze nenulové plochy, a proto může být graficky přesnější. B) Vennův diagram zobrazuje neexistující oblast jako oblast s nulovým obsahem. I když to není graficky přesné, zachovává to rozpoznatelnost Vennova diagramu.

Balík VennDiagram zvládá všechny Eulerovy diagramy dvou množin a většinu všech myslitelných Eulerových diagramů tří množin. Třímístné Eulerovy diagramy, které nebylo možné nakreslit pomocí kružnic nebo elips, nejsou podporovány. Například Eulerův diagram pro případ, kdy dvě neprotínající se množiny tvoří třetí množinu, nelze nakreslit pomocí kružnic a elips, lze jej však nakreslit pomocí mnohoúhelníků. Tento typ obrázku nemá hotové analytické uspořádání a vyžadoval by iterační přizpůsobení; Eulerovy diagramy vyžadující polygony nejsou k dispozici, ale pro těchto několik nepodporovaných případů jsou k dispozici standardní Vennovy diagramy.

Po porovnání s jinými programy schopnými generovat Vennovy diagramy (tabulka 1) patří mezi výhody balíku VennDiagram:

  • Kreslení Eulerových diagramů pomocí kružnic a/nebo elips se dvěma nebo třemi množinami

  • Nabízí větší přizpůsobitelnost pro generování elegantnějších diagramů

  • Dostupnost v široce rozšířené-používaném statistickém prostředí R

  • Generování souborů TIFF s vysokým rozlišením, které se standardně používají v publikacích

Tabulka 1 Porovnání vlastností různých programů schopných generovat Vennovy diagramy.

Napsat komentář

Vaše e-mailová adresa nebude zveřejněna.