VennDiagram: ein Paket für die Erzeugung von hochgradig anpassbaren Venn- und Euler-Diagrammen in R

Nahezu alle grafischen Optionen im Paket VennDiagram wurden parametrisiert und anpassbar gemacht. Die Standardwerte wurden so gewählt, dass sie sinnvolle Diagramme erzeugen, so dass in einfachen Fällen ein hohes Maß an Anpassung nicht erforderlich ist. Abbildung 1 verdeutlicht die Vielfalt der verfügbaren Parametrisierungen. Es gibt vier große grafische Parametergruppen: Formfüllung, Formlinie, Beschriftung und Titel. Shape-fill bezieht sich auf die Farben innerhalb jedes Kreises oder jeder Ellipse. Es können alle in der R-Umgebung verfügbaren Farben verwendet werden, und das Alpha-Blending kann für jede Form einzeln eingestellt werden. Form-Linien sind die Linien, die jeden Kreis oder jede Ellipse umgeben. Sie können ganz fehlen (Abbildung 1C), durchgezogen sein (Abbildungen 1A und 1B) oder jeden anderen in R verfügbaren Linientyp aufweisen (Abbildung 1D). Ihre Farbe kann geändert werden, und jede Form kann einen eigenen Satz von Parametern haben. Die Beschriftungen beziehen sich sowohl auf die Beschriftungen der Kreise und Ellipsen als auch auf die Zahlen in den Kreisen und Ellipsen. Auch diese können in Bezug auf Farbe, Schriftart und Schriftgröße mit jedem verfügbaren R-Parameter angepasst werden. Die Positionen der Beschriftungen können ebenfalls angepasst werden. Titel, die, wie in Abbildung 1D gezeigt, den Haupttitel und den Untertitel enthalten, können auf die gleiche Weise wie die Beschriftungen angepasst werden.

Abbildung 1
Abbildung1

Die vier Arten von Venn-Diagrammen, die vom VennDiagram-Paket gezeichnet werden. A) Ein einzeiliges Venn-Diagramm mit rudimentären anpassbaren Funktionen wie Schriftgröße, Schriftart und Formfüllung der Beschriftung. B) Ein Venn-Diagramm mit zwei Gruppen, das erweiterte Funktionen wie Skalierung, individuelle Formfüllungsspezifikationen und individuelle Beschriftungsplatzierung zeigt. C) Ein dreiteiliges Venn-Diagramm, das einen anderen Formlinientyp („transparent“) und die Option „Text“ für die Platzierung von Beschriftungen zeigt, bei der die Beschriftungen an die Flächenbeschriftungen angehängt werden. D) Ein Venn-Diagramm mit vier Feldern, das eine Kombination aus allen vorherigen Funktionen und der Möglichkeit zur Anpassung der Titel zeigt. Der Code zur Erzeugung aller hier gezeigten Diagramme ist in Zusatzdatei 3 enthalten.

Neben diesen spezifischen grafischen Elementen bietet VennDiagram auch viele allgemeine Optionen, wie die Skalierung, Drehung oder Inversion von Diagrammen. Die Skalierung von Diagrammen wurde mit dem Ziel implementiert, Venn-Diagramme darzustellen, bei denen die grafischen Größen der Teilbereiche (Bereiche, die auf allen Seiten durch Kurven begrenzt sind und nicht weiter unterteilt werden können) tatsächlich den numerischen Werten der Anzahl der Elemente innerhalb jedes Bereichs entsprechen. Die Skalierung von Zwei-Mengen-Venn-Diagrammen und einer ausgewählten Anzahl von Drei-Mengen-Venn-Diagrammen ist möglich – wir erörtern weiter unten die Herausforderungen, dies für alle Drei-Mengen-Fälle zu ermöglichen. Die Verwendung der Skalierung kann manchmal dazu führen, dass sich überlappende Bereiche zu klein für numerische Beschriftungen sind. Abbildung 2, Zeile 1, Spalte 1 zeigt eine programmatisch erzeugte Verbindungslinie, die eine besondere Behandlung dieses Falles ermöglicht. Die automatische Erkennung einer großen Anzahl von Euler-Diagrammen ist implementiert, aber dieser Modus kann mit einem Funktionsaufrufparameter deaktiviert werden, um stattdessen Standard-Venn-Diagramme zu zeichnen. Abbildung 2, Zeile 1, Spalten 2 und 3 zeigen zwei Beispiele für Zwei-Mengen-Euler-Diagramme. Die Zeilen 2 und 3 zeigen eine Teilmenge der implementierten Drei-Mengen-Euler-Diagramme, wobei Zeile 3 die der skalierbaren Variante zeigt. Wir weisen darauf hin, dass Abbildung 2 in Schwarz-Weiß dargestellt ist, um die Unterschiede in der Zusammensetzung der Diagramme hervorzuheben, aber die in Abbildung 1 verwendeten grafischen Parameter und Anpassungen sind vollständig verfügbar. Während VennDiagram standardmäßig Grafiken in hochauflösende TIFF-Dateien schreibt, kann, wenn der Parameter filename auf NULL gesetzt wird, das rohe Gitterobjekt zurückgegeben und in jedem in R verfügbaren Grafikmodus verwendet werden. Der Code zur Erzeugung aller Abbildungen ist in Zusatzdatei 3 enthalten, und ein Beispiel für alle verfügbaren Parametrisierungen ist in Zusatzdatei 4 zu sehen.

Abbildung 2
Abbildung2

Ausgewählte Venn-Diagramm-Spezialfälle und Euler-Diagramme, die vom VennDiagram-Paket gezeichnet wurden. Zeile 1, Spalte 1: automatisch gezeichnete, anpassbare Linien, die die Darstellung von Teilflächen optimieren, wenn einzelne Teilflächen in Zwei-Satz-Venn-Diagrammen zu klein werden. Zeile 1, Spalte 2: ein Euler-Diagramm mit zwei Mengen, das die vollständige Einbeziehung einer der Mengen zeigt. Zeile 1, Spalte 3: ein Zwei-Mengen-Euler-Diagramm mit zwei unterschiedlichen Mengen. Zeile 2, Spalte 1: ein Euler-Diagramm mit drei Mengen, wobei eine Menge keine diskreten Elemente enthält. Zeile 2, Spalte 2: ein Euler-Drei-Mengen-Diagramm, bei dem eine Menge keine diskreten Elemente aufweist und vollständig in einer der beiden anderen Mengen enthalten ist. Zeile 2, Spalte 3: ein Euler-Drei-Mengen-Diagramm, bei dem zwei Mengen keine diskreten Elemente haben und in einer größeren dritten Menge enthalten sind. Zeile 3, Spalte 1: ein Euler-Drei-Mengen-Diagramm, in dem zwei Mengen, die sich von der dritten Menge unterscheiden, vollständig enthalten sind. Zeile 3, Spalte 2: ein Euler-Drei-Mengen-Diagramm, bei dem eine Menge vollständig in einer anderen Menge enthalten ist, die wiederum vollständig in der dritten Menge enthalten ist. Zeile 3, Spalte 2: ein Drei-Mengen-Euler-Diagramm mit drei verschiedenen Mengen. Der Code zur Erzeugung aller hier gezeigten Diagramme ist in Zusatzdatei 3 enthalten.

Diskussion

Während der Entwicklung des VennDiagram-Pakets wurde entdeckt, dass es unmöglich war, genaue, skalierte Venn-Diagramme mit drei Mengen unter Verwendung von Kreisen zu zeichnen. Dieses Problem wird im folgenden Szenario veranschaulicht. In einem System aus zwei Kreisen A und B könnten die Abstände zwischen den Kreismittelpunkten, dAB, bestimmt werden, wenn die Flächen (AA bzw. AB) und die Schnittfläche (AA ∩ AB) bekannt sind. Dies ist möglich, weil in einem Zweikreissystem ein einziges AA ∩ AB einem einzigen Wert für dAB entspricht. Daher könnten in einem System mit drei Kreisen A, B und C dAB, dBC, dAC berechnet werden, solange AA, AB, AC, AA ∩ AB, AA ∩ AC, AB ∩ AC bekannt sind. Allerdings bilden dAB, dBC, dAC ein eindeutiges Dreieck, was bedeutet, dass ein Venn-Diagramm gezeichnet werden kann, ohne dass der Gesamtschnittpunkt AA ∩ AB ∩ AC jemals bekannt ist. Mit anderen Worten, die Größe der Überschneidung zwischen allen drei Kreisen ändert nichts an der Darstellung von skalierten Venn-Diagrammen – die Fläche bleibt unverändert, selbst wenn ein System eine Gesamtüberschneidung von Null hat (d. h. AA ∩ AB ∩ AC = 0)! Dieses Rätsel ergibt sich aus der (willkürlichen) Wahl von Kreisen zur Darstellung der Mengengröße, wodurch die Freiheitsgrade um einen reduziert werden. Eindeutige Lösungen können durch die Verwendung von Ellipsen oder Polygonen zum Zeichnen von Venn-Diagrammen ermittelt werden, aber die resultierenden Diagramme würden die sofortige Erkennbarkeit und Vertrautheit verlieren, die mit kreisförmigen Venn-Diagrammen verbunden sind, wodurch der Sinn einer praktischen Darstellung von Informationen zunichte gemacht würde. Nicht kreisförmige Diagramme würden auch iterative Algorithmen zur Berechnung der Positionen und Größen der Formen erfordern, was den Rechenaufwand erheblich erhöhen würde, wie bereits von anderen diskutiert wurde. Daher ist die Skalierung von Venn-Diagrammen mit drei Elementen im VennDiagram-Paket deaktiviert. Ebenso wurden Venn-Diagramme, die mehr als vier Mengen enthalten, im VennDiagram-Paket nicht implementiert, da sie für eine intuitive Visualisierung zu komplex werden.

Ein allgemeiner Vorbehalt bei der Verwendung von Euler-Diagrammen ist, dass sie zwar die grafische Komplexität einiger Venn-Diagramme reduzieren, ihre nicht-traditionellen Formen aber in manchen Fällen auch weniger erkennbar sind. Wenn leere Bereiche vorhanden sind, muss der Benutzer zwischen der Vertrautheit von Venn-Diagrammen und der höheren Genauigkeit von Euler-Diagrammen wählen. Abbildung 3 veranschaulicht eine Situation, in der je nach den Präferenzen des Benutzers entweder ein Venn- oder ein Euler-Diagramm angemessen sein kann.

Abbildung 3
Abbildung3

Ein Vergleich zwischen einem Euler-Diagramm und einem Venn-Diagramm für dieselben hypothetischen Mengen. A) Das Euler-Diagramm zeigt nur Flächen, die nicht Null sind, und kann daher grafisch genauer sein. B) Das Venn-Diagramm zeigt die nicht vorhandene Fläche als eine Fläche mit Nullinhalt. Dies ist zwar grafisch nicht genau, bewahrt aber die Erkennbarkeit eines Venn-Diagramms.

Das Paket VennDiagram beherrscht alle Zwei-Mengen-Euler-Diagramme und die Mehrzahl aller denkbaren Drei-Mengen-Euler-Diagramme. Drei-Mengen-Euler-Diagramme, die nicht mit Kreisen oder Ellipsen gezeichnet werden können, werden nicht unterstützt. Beispielsweise kann ein Euler-Diagramm für den Fall, dass zwei sich nicht schneidende Mengen die dritte Menge bilden, nicht mit Kreisen und Ellipsen gezeichnet werden, wohl aber mit Polygonen. Für diese Art von Figur gibt es kein fertiges analytisches Layout und sie würde eine iterative Anpassung erfordern; es sind keine Euler-Diagramme verfügbar, die Polygone erfordern, aber Standard-Venn-Diagramme sind für diese wenigen nicht unterstützten Fälle verfügbar.

Nach einem Vergleich mit anderen Programmen, die Venn-Diagramme erzeugen können (Tabelle 1), sind die Vorteile des VennDiagram-Pakets folgende:

  • Zeichnen von Euler-Diagrammen unter Verwendung von Kreisen und/oder Ellipsen mit zwei oder drei Sätzen

  • Bieten eine größere Anpassungsfähigkeit, um elegantere Diagramme zu erzeugen

  • Verfügbarkeit in der weit verbreitetenR-Statistikumgebung

  • Erzeugung von hochauflösenden TIFF-Dateien, die in Publikationen zum Standard gehören

Tabelle 1 Ein Vergleich der Funktionen verschiedener Programme, die Venn-Diagramme erzeugen können.

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht.