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

Prawie wszystkie opcje graficzne w pakiecie VennDiagram zostały sparametryzowane i dostosowane do potrzeb użytkownika. Domyślne wartości zostały wybrane tak, aby generować sensowne diagramy, więc w prostych przypadkach wysoki poziom dostosowania nie jest wymagany. Rysunek 1 pokazuje różnorodność dostępnych parametryzacji. Istnieją cztery główne grupy parametrów graficznych: wypełnienie kształtu, linia kształtu, etykiety i tytuły. Wypełnienie kształtu odnosi się do kolorów wewnątrz każdego okręgu lub elipsy. Mogą być użyte wszystkie kolory dostępne w środowisku R, a alfa-blending może być regulowany dla każdego kształtu. Linie kształtu to linie, które otaczają każdy okrąg lub elipsę. Mogą być całkowicie nieobecne (rysunek 1C), pełne (rysunki 1A i 1B) lub dowolnego innego dostępnego w środowisku R typu linii (rysunek 1D). Ich kolor może być zmieniany, a każdy kształt może mieć osobny zestaw parametrów. Etykiety odnoszą się zarówno do napisów opisujących każdy okrąg lub elipsę, jak i do liczb w nich zawartych. Również w tym przypadku można je dostosować pod względem koloru, rodzaju i wielkości czcionki za pomocą dowolnego parametru R. Położenie etykiet podpisów również można dostosować. Tytuły, które zawierają tytuł główny i podtytuł, jak pokazano na rysunku 1D, mogą być również dostosowane w ten sam sposób jak etykiety.

Rysunek 1
figure1

Cztery typy diagramów Venna rysowane przez pakiet VennDiagram. A) Jednozestawowy diagram Venn pokazujący podstawowe cechy, takie jak rozmiar czcionki etykiety, twarz czcionki etykiety i wypełnienie kształtu. B) Dwuskładnikowy diagram Venn pokazujący bardziej zaawansowane funkcje, takie jak skalowanie, indywidualne specyfikacje wypełnienia kształtu oraz indywidualne rozmieszczenie etykiet napisów. C) Trójzestawowy diagram Venn przedstawiający inny typ linii kształtu („przezroczysta”) oraz opcję „tekst” umieszczania etykiet podpisów, gdzie etykiety podpisów są dołączone do etykiet obszaru. D) Czteroelementowy diagram Venn przedstawiający kombinację wszystkich poprzednich cech plus możliwość dostosowania tytułów. Kod generujący wszystkie przedstawione tu diagramy znajduje się w Dodatkowym Pliku 3.

Poza tymi specyficznymi elementami graficznymi, VennDiagram oferuje również wiele ogólnych opcji, takich jak skalowanie, obracanie i odwracanie diagramów. Skalowanie diagramów zostało zaimplementowane w celu wyświetlania diagramów Venna, w których graficzne rozmiary obszarów częściowych (obszarów ograniczonych ze wszystkich stron krzywymi, które nie mogą być dalej podzielone) odpowiadają liczbowym wartościom liczby elementów w każdym regionie. Skalowanie dwuskładnikowych diagramów Venna i wybranych trójskładnikowych diagramów Venna jest możliwe – poniżej omawiamy wyzwania związane z umożliwieniem tego dla wszystkich przypadków trójskładnikowych. Użycie skalowania może czasami prowadzić do tego, że nakładające się obszary są zbyt małe dla etykiet numerycznych. Rysunek 2, wiersz 1, kolumna 1 pokazuje programowo wygenerowaną linię łączącą, która pozwala na specjalne potraktowanie tego przypadku. Automatyczne rozpoznawanie dużej liczby diagramów Eulera jest zaimplementowane, ale tryb ten można wyłączyć za pomocą parametru wywołania funkcji, aby zamiast tego wykreślić standardowe diagramy Venna. Rysunek 2, wiersz 1, kolumny 2 i 3 pokazują dwa przykłady dwuskładnikowych diagramów Eulera. Rzędy 2 i 3 pokazują podzbiór zaimplementowanych trójzestawowych diagramów Eulera, przy czym rząd 3 pokazuje te o odmianie skalowalnej. Zwracamy uwagę, że rysunek 2 jest przedstawiony w czerni i bieli, aby podkreślić różnice kompozycyjne pomiędzy diagramami, ale parametry graficzne i dostosowania użyte na rysunku 1 są w pełni dostępne. Podczas gdy VennDiagram domyślnie zapisuje grafikę do plików TIFF o wysokiej rozdzielczości, jeśli parametr filename jest ustawiony na NULL, surowy obiekt siatki może być zwrócony i użyty w dowolnym trybie graficznym dostępnym w R. Kod generujący wszystkie figury jest podany w pliku dodatkowym 3, a przykład wszystkich dostępnych parametryzacji jest pokazany w pliku dodatkowym 4.

Rysunek 2
figure2

Wybrane przypadki szczególne diagramu Venna i diagramy Eulera narysowane przez pakiet VennDiagram. Wiersz 1, kolumna 1: automatycznie rysowane, konfigurowalne linie, które optymalizują wyświetlanie obszarów częściowych, gdy poszczególne obszary częściowe stają się zbyt małe w dwuskładnikowych diagramach Venna. Wiersz 1, kolumna 2: wykres Eulera dla dwóch zbiorów, pokazujący całkowitą inkluzję jednego z nich. Wiersz 1, kolumna 3: diagram Eulera dla dwóch zbiorów pokazujący dwa odrębne zbiory. Wiersz 2, kolumna 1: trójzbiorowy diagram Eulera, w którym jeden zbiór nie ma elementów dyskretnych. Wiersz 2, kolumna 2: trójzbiorowy diagram Eulera, w którym jeden zbiór nie ma elementów dyskretnych i jest całkowicie zawarty w jednym z dwóch pozostałych zbiorów. Wiersz 2, kolumna 3: trójzbiorowy diagram Eulera, w którym dwa zbiory nie mają elementów dyskretnych i są zawarte w większym, trzecim zbiorze. Wiersz 3, kolumna 1: trójzbiorowy diagram Eulera pokazujący całkowitą inkluzję dwóch zbiorów, które są odrębne od trzeciego zbioru. Wiersz 3, kolumna 2: diagram Eulera trzech zbiorów, w którym jeden zbiór jest całkowicie zawarty w innym zbiorze, który z kolei jest całkowicie zawarty w trzecim zbiorze. Wiersz 3, kolumna 2: trójzestawowy diagram Eulera przedstawiający trzy odrębne zbiory. Kod generujący wszystkie przedstawione tu diagramy znajduje się w pliku dodatkowym 3.

Dyskusja

Podczas rozwijania pakietu VennDiagram odkryto, że niemożliwe jest rysowanie dokładnych, skalowanych diagramów Venna z trzema zbiorami przy użyciu okręgów. Ten problem jest zilustrowany następującym scenariuszem. W układzie dwóch okręgów A i B można wyznaczyć odległości między środkami tych okręgów, dAB, o ile znane są ich pola (odpowiednio AA i AB) oraz pole przecięcia (AA ∩ AB). Jest to możliwe, ponieważ w układzie dwóch okręgów pojedynczemu AA ∩ AB odpowiada unikalna wartość dAB. Zatem w układzie trzech okręgów A, B, i C, dAB, dBC, dAC można obliczyć tak długo, jak długo znane są AA, AB, AC, AA ∩ AB, AA ∩ AC, AB ∩ AC. Jednak dAB, dBC, dAC tworzą unikalny trójkąt, co sugeruje, że diagram Venna można narysować bez znajomości całkowitego przecięcia AA ∩ AB ∩ AC. Innymi słowy, wielkość zachodzenia na siebie wszystkich trzech okręgów nie zmienia prezentacji przeskalowanego diagramu Venna – obszar jest niezmienny nawet wtedy, gdy jeden z układów ma zerowe całkowite przecięcie (tzn. AA ∩ AB ∩ AC = 0)! Ten problem wynika z (arbitralnego) wyboru okręgów do reprezentowania rozmiaru zbioru, co zmniejsza liczbę stopni swobody o jeden. Unikalne rozwiązania można znaleźć, używając elips lub wielokątów do rysowania diagramów Venn’a, ale diagramy te straciłyby natychmiastową rozpoznawalność i znajomość kojarzoną z okrągłymi diagramami Venn’a, co zniweczyłoby sens wygodnego wyświetlania informacji. Nieokrągłe diagramy wymagałyby również iteracyjnych algorytmów do obliczania pozycji i rozmiarów kształtów, co znacznie zwiększyłoby obciążenia obliczeniowe, jak zostało to omówione przez innych . W związku z tym, skalowanie trójzestawowych diagramów Venna jest wyłączone w pakiecie VennDiagram. Podobnie, diagramy Venna zawierające więcej niż cztery zestawy nie zostały zaimplementowane w pakiecie VennDiagram, ponieważ stają się zbyt skomplikowane do intuicyjnej wizualizacji.

Ogólnym zastrzeżeniem podczas używania diagramów Eulera jest to, że chociaż zmniejszają one graficzną złożoność niektórych diagramów Venna, ich nietradycyjne kształty mogą być również mniej rozpoznawalne w niektórych przypadkach. Gdy obecne są puste obszary, użytkownik musi wybrać pomiędzy znajomością diagramów Venn a zwiększoną dokładnością diagramów Eulera. Rysunek 3 ilustruje sytuację, w której albo diagram Venn albo diagram Eulera może być odpowiedni w zależności od preferencji użytkownika.

Rysunek 3
figura3

Porównanie obok siebie diagramu Eulera i diagramu Venn dla tych samych hipotetycznych zbiorów. A) Diagram Eulera pokazuje tylko obszary niezerowe i dlatego może być bardziej dokładny graficznie. B) Diagram Venna pokazuje nieistniejący obszar jako obszar o zerowej zawartości. Choć nie jest to graficznie dokładne, zachowuje rozpoznawalność diagramu Venna.

Pakiet VennDiagram obsługuje wszystkie dwuskładnikowe diagramy Eulera i większość wszystkich możliwych trójskładnikowych diagramów Eulera. Trójzestawowe diagramy Eulera, które nie mogą być rysowane za pomocą okręgów lub elips nie są obsługiwane. Na przykład, wykres Eulera dla przypadku, gdy dwa nieprzecinające się zbiory tworzą trzeci zbiór, nie może być narysowany przy użyciu kół i elips, ale może być narysowany przy użyciu wielokątów. Ten typ figury nie ma gotowego układu analitycznego i wymagałby iteracyjnego dopasowania; nie są dostępne diagramy Eulera wymagające wielokątów, ale standardowe diagramy Venna są dostępne dla tych kilku nieobsługiwanych przypadków.

Po porównaniu z innymi programami zdolnymi do generowania diagramów Venna (Tabela 1), zalety pakietu VennDiagram obejmują:

  • Rysowanie diagramów Eulera przy użyciu okręgów i/lub elips z dwoma lub trzema zbiorami

  • Oferowanie większych możliwości dostosowania do potrzeb użytkownika w celu wygenerowania bardziej eleganckich diagramów

  • Dostępność w szeroko-używanym środowisku statystycznym R

  • Generowanie plików TIFF o wysokiej rozdzielczości, które są standardem w publikacjach

Tabela 1 Porównanie cech różnych programów zdolnych do generowania diagramów Venna.

Dodaj komentarz

Twój adres e-mail nie zostanie opublikowany.