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.
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.
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.
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