VennDiagram: un paquete para la generación de diagramas de Venn y Euler altamente personalizables en R

Casi todas las opciones gráficas del paquete VennDiagram han sido parametrizadas y personalizadas. Los valores por defecto se seleccionaron para generar diagramas sensatos, por lo que en casos sencillos no se requiere un alto nivel de personalización. La figura 1 destaca la diversidad de parametrizaciones disponibles. Existen cuatro grandes grupos de parámetros gráficos: shape-fill, shape-line, etiquetas y títulos. Shape-fill se refiere a los colores dentro de cada círculo o elipse. Se pueden utilizar todos los colores disponibles en el entorno de R, y la mezcla alfa se puede ajustar en función de cada forma. Las Shape-lines son las líneas que rodean cada círculo o elipse. Pueden estar totalmente ausentes (figura 1C), ser sólidas (figuras 1A y 1B), o cualquier otro tipo de línea disponible en R (figura 1D). Su color puede cambiarse, y cada forma puede tener un conjunto separado de parámetros. Los rótulos se refieren tanto a las leyendas que describen cada círculo o elipse como a los números que contienen. Una vez más, pueden personalizarse en términos de color, tipo y tamaño de letra con cualquier parámetro R disponible. Las posiciones de las etiquetas de los subtítulos también se pueden personalizar. Los títulos, que incluyen el título principal y el subtítulo como se demuestra en la figura 1D, también pueden personalizarse de la misma manera que las etiquetas.

Figura 1
figura1

Los cuatro tipos de diagramas de Venn dibujados por el paquete VennDiagram. A) Un diagrama de Venn de un conjunto que muestra características rudimentarias personalizables como el tamaño de la fuente de la etiqueta, la cara de la fuente de la etiqueta y el relleno de la forma. B) Un diagrama de Venn de dos conjuntos que muestra características más avanzadas como el escalado, las especificaciones de relleno de forma individual y la colocación de etiquetas individuales. C) Un diagrama de Venn de tres conjuntos que muestra un tipo de línea de forma diferente («transparente») y la opción «texto» de colocación de etiquetas de subtítulos, donde las etiquetas de subtítulos se adjuntan a las etiquetas de área. D) Un diagrama de Venn de cuatro conjuntos que muestra una combinación de todas las características anteriores más la posibilidad de personalizar los títulos. El código para generar todos los diagramas mostrados aquí se incluye en el Archivo Adicional 3.

Además de estos elementos gráficos específicos, VennDiagram también ofrece muchas opciones generales, como la escala, la rotación o la inversión de los diagramas. El escalado de diagramas se implementó con el objetivo de mostrar diagramas de Venn en los que los tamaños gráficos de las áreas parciales (áreas delimitadas en todos sus lados por curvas y que no pueden subdividirse más) corresponden realmente a los valores numéricos del número de elementos dentro de cada región. Es posible escalar los diagramas de Venn de dos conjuntos y un número selecto de diagramas de Venn de tres conjuntos. El uso de la escala puede llevar a veces a que las áreas superpuestas sean demasiado pequeñas para las etiquetas numéricas. La figura 2, fila 1, columna 1, muestra una línea de conexión generada mediante programación que permite un tratamiento especial de este caso. Se ha implementado el reconocimiento automático de un gran número de diagramas de Euler, pero este modo puede desactivarse con un parámetro de llamada de función para trazar en su lugar diagramas de Venn estándar. La figura 2, fila 1, columnas 2 y 3 muestran dos ejemplos de diagramas de Euler de dos conjuntos. Las filas 2 y 3 muestran un subconjunto de diagramas de Euler de tres conjuntos implementados, y la fila 3 muestra los de la variedad escalable. Observamos que la figura 2 se presenta en blanco y negro para resaltar las diferencias de composición entre los diagramas, pero los parámetros gráficos y las personalizaciones utilizadas en la figura 1 están totalmente disponibles. Aunque VennDiagram escribe por defecto los gráficos en archivos TIFF de alta resolución, si el parámetro filename se establece en NULL, el objeto de cuadrícula sin procesar puede devolverse y utilizarse en cualquier modo gráfico disponible en R. El código para generar todas las figuras se da en el archivo adicional 3 y un ejemplo de todas las parametrizaciones disponibles se muestra en el archivo adicional 4.

Figura 2
figura2

Casos especiales de diagramas de Venn seleccionados y diagramas de Euler dibujados por el paquete VennDiagram. Fila 1, columna 1: líneas personalizables dibujadas automáticamente que optimizan la visualización de áreas parciales cuando las áreas parciales individuales se vuelven demasiado pequeñas en los diagramas de Venn de dos conjuntos. Fila 1, columna 2: un diagrama de Euler de dos conjuntos que muestra la inclusión total de uno de los conjuntos. Fila 1, columna 3: un diagrama de Euler de dos conjuntos que muestra dos conjuntos distintos. Fila 2, columna 1: un diagrama de Euler de tres conjuntos en el que uno de ellos no tiene elementos discretos. Fila 2, columna 2: un diagrama de Euler de tres conjuntos en el que uno de ellos no tiene elementos discretos y está totalmente incluido en uno de los otros dos conjuntos. Fila 2, columna 3: un diagrama de Euler de tres conjuntos en el que dos conjuntos no tienen elementos discretos y están incluidos en un tercer conjunto mayor. Fila 3, columna 1: un diagrama de Euler de tres conjuntos que muestra la inclusión total de dos conjuntos que son distintos del tercer conjunto. Fila 3, columna 2: un diagrama de Euler de tres conjuntos en el que un conjunto está totalmente incluido en otro conjunto, que a su vez está totalmente incluido en el tercer conjunto. Fila 3, columna 2: un diagrama de Euler de tres conjuntos que muestra tres conjuntos distintos. El código para generar todos los diagramas mostrados aquí se incluye en el Archivo Adicional 3.

Discusión

Durante el desarrollo del paquete VennDiagram, se descubrió que era imposible dibujar diagramas de Venn precisos y a escala con tres conjuntos utilizando círculos. Este enigma se ilustra en el siguiente escenario. En un sistema de dos círculos A y B, las distancias entre los centros de los círculos, dAB, podrían determinarse siempre que se conozcan las áreas (AA y AB respectivamente) y el área de intersección (AA ∩ AB). Esto es posible porque en un sistema de dos círculos un único AA ∩ AB corresponde a un valor único de dAB. Por lo tanto, un sistema de tres círculos A, B y C, dAB, dBC, dAC podría calcularse siempre que se conozcan AA, AB, AC, AA ∩ AB, AA ∩ AC, AB ∩ AC. Sin embargo, dAB, dBC, dAC forman un triángulo único, lo que implica que se puede dibujar un diagrama de Venn sin conocer nunca la intersección global AA ∩ AB ∩ AC. En otras palabras, el tamaño del solapamiento entre los tres círculos no altera la presentación de los diagramas de Venn a escala: ¡el área no cambia aunque un sistema tenga una intersección global nula (es decir, AA ∩ AB ∩ AC = 0)! Este enigma resulta de la elección (arbitraria) de los círculos para representar el tamaño del conjunto, que reduce los grados de libertad en uno. Se pueden identificar soluciones únicas utilizando elipses o polígonos para dibujar los diagramas de Venn, pero los diagramas resultantes perderían la reconocibilidad instantánea y la familiaridad asociada a los diagramas de Venn circulares, lo que anularía el objetivo de mostrar la información de forma conveniente. Los diagramas no circulares también requerirían algoritmos iterativos para calcular las posiciones y los tamaños de las formas, lo que aumentaría enormemente la carga computacional, como ya han comentado otros. En consecuencia, el escalado de los diagramas de Venn de tres conjuntos está desactivado en el paquete VennDiagram. Del mismo modo, los diagramas de Venn que contienen más de cuatro conjuntos no se implementaron en el paquete VennDiagram porque se vuelven demasiado complejos para una visualización intuitiva.

Una advertencia general al utilizar los diagramas de Euler es que, aunque reducen la complejidad gráfica de algunos diagramas de Venn, sus formas no tradicionales también pueden ser menos reconocibles en algunos casos. Cuando hay áreas vacías, el usuario tiene que elegir entre la familiaridad de los diagramas de Venn y la mayor precisión de los diagramas de Euler. La figura 3 ilustra una situación en la que un diagrama de Venn o un diagrama de Euler puede ser apropiado dependiendo de las preferencias del usuario.

Figura 3
figura3

Una comparación lado a lado de un diagrama de Euler y un diagrama de Venn para los mismos conjuntos hipotéticos. A) El diagrama de Euler muestra sólo las áreas no nulas y, por tanto, puede ser más preciso gráficamente. B) El diagrama de Venn muestra el área inexistente como un área con contenido cero. Aunque esto no es gráficamente preciso, preserva la reconocibilidad de un diagrama de Venn.

El paquete VennDiagram maneja todos los diagramas de Euler de dos conjuntos y la mayoría de todos los diagramas de Euler de tres conjuntos concebibles. Los diagramas de Euler de tres conjuntos que no pueden ser dibujados usando círculos o elipses no son soportados. Por ejemplo, un diagrama de Euler para el caso en el que dos conjuntos no intersecantes comprenden el tercer conjunto no puede ser dibujado usando círculos y elipses, aunque puede ser dibujado usando polígonos. Este tipo de figura carece de un trazado analítico listo y requeriría un ajuste iterativo; no se dispone de diagramas de Euler que requieran polígonos, pero sí de diagramas de Venn estándar para estos pocos casos no admitidos.

Después de comparar con otros programas capaces de generar diagramas de Venn (Tabla 1), las ventajas del paquete VennDiagram incluyen:

  • Dibujar diagramas de Euler utilizando círculos y/o elipses con dos o tres conjuntos

  • Ofrecer una mayor personalización para generar diagramas más elegantes

  • Disponibilidad en el ampliamenteR ampliamente utilizado

  • Generar archivos TIFF de alta resolución que son estándar en las publicaciones

Tabla 1 Una comparación de las características de varios programas capaces de generar diagramas de Venn.

Deja una respuesta

Tu dirección de correo electrónico no será publicada.