Un UpSet plot visualiza intersecciones entre conjuntos, una alternativa escalable a los diagramas de Venn cuando se comparan mas de tres conjuntos. Los datos deben ser una matriz binaria donde cada columna es un conjunto y cada fila es un elemento (1 = pertenece, 0 = no pertenece).
set.seed(42)
n <- 300
genres_df <- data.frame(
Action = sample(0:1, n, TRUE, prob = c(0.6, 0.4)),
Comedy = sample(0:1, n, TRUE, prob = c(0.5, 0.5)),
Drama = sample(0:1, n, TRUE, prob = c(0.4, 0.6)),
Romance = sample(0:1, n, TRUE, prob = c(0.7, 0.3)),
Thriller = sample(0:1, n, TRUE, prob = c(0.65, 0.35)),
Documentary = sample(0:1, n, TRUE, prob = c(0.8, 0.2))
)
upset()
Pasa el data frame binario a upset(). Las barras horizontales de la izquierda muestran el tamano de cada conjunto; las barras verticales muestran el tamano de cada interseccion. Los puntos conectados en la matriz indican que conjuntos forman cada interseccion.
# install.packages("UpSetR")
library(UpSetR)
upset(genres_df)

nsets y nintersects

nsets controla cuantos conjuntos aparecen en el grafico (los mas grandes por defecto). nintersects limita cuantas intersecciones se muestran en el grafico de barras. Aumenta ambos para tener una vision mas completa.
# install.packages("UpSetR")
library(UpSetR)
upset(genres_df,
nsets = 6,
nintersects = 15)
order.by
Por defecto las intersecciones se ordenan por frecuencia ("freq"). Usa order.by = "degree" para ordenar por el numero de conjuntos en cada interseccion, util para identificar primero las pertenencias exclusivas y los solapamientos entre pares.
# install.packages("UpSetR")
library(UpSetR)
upset(genres_df,
order.by = "degree")


Usa sets.bar.color para cambiar el color de las barras de tamano de conjunto (panel izquierdo) y main.bar.color para las barras de tamano de interseccion (panel superior). matrix.color controla el color de los puntos en la matriz.
# install.packages("UpSetR")
library(UpSetR)
upset(genres_df,
sets.bar.color = "steelblue",
main.bar.color = "tomato3")
Usa queries para resaltar una interseccion especifica. Establece query = intersects, pasa los nombres de los conjuntos en params, elige un color y pon active = TRUE para rellenar la barra en lugar de solo anadir un contorno.
# install.packages("UpSetR")
library(UpSetR)
upset(genres_df,
queries = list(
list(query = intersects,
params = list("Drama", "Comedy"),
color = "steelblue",
active = TRUE)
))

Aprende estadística desde lo básico hasta técnicas avanzadas, explicado con claridad
Ir al sitio
También te puede interesar