Librería

ggVennDiagram

Autor principal

Chun-Hui Gao

Diagrama de Venn con ggVennDiagram

ggVennDiagram permite crear diagramas de Venn en ggplot2. Necesitas pasar una lista de vectores que contengan tus datos a la función ggVennDiagram como en el ejemplo siguiente. Ten en cuenta que los vectores de caracteres se transformarán a vectores numéricos.

# install.packages("ggVennDiagram")
library(ggVennDiagram)

# Lista de vectores
x <- list(A = 1:5, B = 2:7)

# Diagrama de Venn 2D
ggVennDiagram(x)

Diagrama de Venn en ggplot2 con ggVennDiagram

Diagrama de Venn 3D

Si pasas una lista de tres elementos tendrás un diagrama de Venn como el siguiente.

# install.packages("ggVennDiagram")
library(ggVennDiagram)

# Lista de vectores
x <- list(A = 1:5, B = 2:7, C = 5:10)

# Diagrama de Venn 3D
ggVennDiagram(x)

Diagrama de Venn 3D en R

Diagrama de Venn 4D

También puedes pasar una lista de cuatro componentes diferentes. Si neecesitas añadir más revisa la documentación.

# install.packages("ggVennDiagram")
library(ggVennDiagram)

# Lista de vectores
x <- list(A = 1:5, B = 2:7, C = 5:10, D = 8:15)

# Diagrama de Venn 3D
ggVennDiagram(x)

Diagrama de Venn 4D en ggplot2

Cambiar los colores del diagrama

Cambiar los colores del diagrama de Venn en ggplot2

Como ggVennDiagram se basa en ggplot2 puedes añadir más capas o sobrescribir las que ya existen. Para cambiar los colores usa scale_fill_gradient como en el ejemplo siguiente.

# install.packages("ggVennDiagram")
library(ggVennDiagram)
# install.packages("ggplot2")
library(ggplot2)

# Lista de vectores
x <- list(A = 1:5, B = 2:7, C = 5:10)

# Diagrama de Venn con colores personalizados
ggVennDiagram(x) + 
  scale_fill_gradient(low = "#F4FAFE", high = "#4981BF")

Cambiar el color del borde y el estilo del diagrama de Venn

El borde también se puede personalizar pero haciendo uso del argumento color. El ancho de línea y el estilo se pueden cambiar con lwd y lty, respectivamente.

# install.packages("ggVennDiagram")
library(ggVennDiagram)
# install.packages("ggplot2")
library(ggplot2)

# Lista de vectores
x <- list(A = 1:5, B = 2:7, C = 5:10)

# Diagrama de Venn con borde personalizado
ggVennDiagram(x, color = "black", lwd = 0.8, lty = 1) + 
  scale_fill_gradient(low = "#F4FAFE", high = "#4981BF")

Etiquetas y nombres de los grupos

Nombres de los grupos

Por defecto, la función usa los nombres de la lista para establecer los nombres de las categorías, pero puedes sobrescribirlos con category.names.

# install.packages("ggVennDiagram")
library(ggVennDiagram)

# Lista de vectores
x <- list(A = 1:5, B = 2:7, C = 5:10)

# Diagrama de Venn con nombres personalizados
ggVennDiagram(x, category.names = c("Grupo 1",
                                    "Grupo 2",
                                    "Grupo 3"))

Modifica los nombres de las categorías del diagrama de Venn en ggplot2

Etiquetas con porcentajes

Las etiquetas muestran los porcentajes y los conteos de los valores. Establece label = "percent" para mostrar solo los porcentajes.

# install.packages("ggVennDiagram")
library(ggVennDiagram)

# Lista de vectores
x <- list(A = 1:5, B = 2:7, C = 5:10)

# Diagrama de Venn con porcentajes
ggVennDiagram(x, 
              label = "percent")

ggplot2 diagrama de Venn con porcentaje

Etiquetas con la cuenta

Si prefieres mostrar solo el conteo establece label = "count".

# install.packages("ggVennDiagram")
library(ggVennDiagram)

# Lista de vectores
x <- list(A = 1:5, B = 2:7, C = 5:10)

# Diagrama de Venn con la cuenta de los valores
ggVennDiagram(x, 
              label = "count")

Diagrama de Venn con la cuenta de los valores

Eliminar las etiquetas

Es posible eliminar todas las etiquetas estableciendo label = NULL.

# install.packages("ggVennDiagram")
library(ggVennDiagram)

# Lista de vectores
x <- list(A = 1:5, B = 2:7, C = 5:10)

# Diagrama de Venn sin etiquetas
ggVennDiagram(x, 
              label = NULL)

ggVennDiagram sin etiquetas

Transparencia de las etiquetas

Si instalas la versión en desarrollo del paquete desde GitHub tendrás un argumento adicional que permite modificar el grado de transparencia del fondo de las etiquetas.

# install.packages("devtools")
# devtools::install_github("gaospecial/ggVennDiagram")
library(ggVennDiagram)

# Lista de vectores
x <- list(A = 1:5, B = 2:7, C = 5:10)

# Transparencia de las etiquetas
ggVennDiagram(x, 
              label_alpha = 0)

ggVennDiagram transparencia de las etiquetas

Eliminar o personalizar la leyenda

Leyenda del diagrama de Venn en R

La leyenda de los diagramas de Venn se pueden personalizar añadiendo más capas al gráfico. En el siguiente ejemplo estamos modificando el título de la leyenda y su posición.

# install.packages("ggVennDiagram")
library(ggVennDiagram)
# install.packages("ggplot2")
library(ggplot2)

# Lista de vectores
x <- list(A = 1:5, B = 2:7, C = 5:10)

# Diagrama de Venn con leyenda personalizada
ggVennDiagram(x) + 
  guides(fill = guide_legend(title = "Título")) +
  theme(legend.title = element_text(color = "red"),
        legend.position = "bottom")

Eliminar la leyenda en ggplot2 ggVennDiagram

Es posible eliminar la leyenda del diagrama estableciendo su posición a "none".

# install.packages("ggVennDiagram")
library(ggVennDiagram)
# install.packages("ggplot2")
library(ggplot2)

# Lista de vectores
x <- list(A = 1:5, B = 2:7, C = 5:10)

# Diagrama de Venn sin leyenda
ggVennDiagram(x, color = 1, lwd = 0.7) + 
 scale_fill_gradient(low = "#F4FAFE", high = "#4981BF") +
 theme(legend.position = "none")

También te puede interesar