Catálogo de Visualizaciones en R

Author

Pablo Montero Rollán

1. Area Chart

  • Origen: -
  • Autoría: -
  • Ventajas: Permite visualizar el desarrollo de valores cuantitativos a lo largo del tiempo. Al tener el área rellenada (con color o textura), proporciona una gran sensación de volumen y magnitud total.
  • Inconvenientes: Con muchas fluctuaciones se vuelve inservible.
  • Funcionamiento: Se construye trazando una serie de coordenadas unidas por líneas y rellenando el espacio que queda entre dicha línea trazada y el eje X.
  • Tipos de datos admitidos: Requiere variables cuantitativas representadas a lo largo de intervalos ordenados o variables temporales (secuencias cronológicas).
  • Ejemplos típicos: Evolución de una variable numérica a través de los años o meses.
  • Aplicaciones habituales: Visualización de series temporales, seguimiento de tendencias temporales y acumulaciones.
library(tidyverse)

# 1. Leemos el archivo y lo guardamos en 'mi_tabla'
mi_tabla <- read.csv("./datos.csv")

# 2. Seleccionamos las columnas 1 y 2
resultado <- mi_tabla[, c(1, 2)]

# Fecha
resultado$Date <- as.Date(resultado$Date, "%m/%d/%Y")

# Número (usando gsub para quitar el $)
resultado$Close.Last <- as.numeric(gsub("\\$", "", resultado$Close.Last))

# Agrupamos y calculamos la media por año
datos_por_anio <- resultado %>%
  mutate(Anio = format(Date, "%Y")) %>%  # Extraemos el año
  group_by(Anio) %>%
  summarise(Media_Precio = mean(Close.Last, na.rm = TRUE))

# Gráfico
ggplot(datos_por_anio, aes(x = Anio, y = Media_Precio, group = 1)) +
  geom_area(fill = "mediumseagreen", alpha = 0.4) +
  geom_line(color = "darkgreen", size = 1.2) +
  geom_point(color = "darkgreen", size = 3) +
  labs(
    title = "Apple (AAPL) Historical Stock Data",
    subtitle = "Media del precio por acción en cada año",
    x = "Año (Categoría)",
    y = "Precio Promedio ($)"
  ) +
  theme_minimal()


2. Dendrograma Circular

  • Origen: -
  • Autoría: -
  • Ventajas: Su mayor ventaja sobre el dendrograma lineal es el ahorro del espacio. Permite visualizar un número mucho mayor de etiquetas en el mismo espacio.
  • Inconvenientes: Es más difícil de leer e interpretar si no se usan colores.
  • Funcionamiento: En lugar de dibujar el árbol se renderiza un nodo raíz en el centro del círculo, y las ramificaciones se van desplegando hacia el exterior.
  • Tipos de datos admitidos: Estructuras de datos jerárquicas o resultados de agrupamiento.
  • Ejemplos típicos: Relaciones taxonómicas, árboles genéticos o clasificaciones de sistemas complejos.
  • Aplicaciones habituales: Análisis de redes, visualización de relaciones de similitud entre entidades.
library(dendextend)
library(circlize)
library(dplyr)

# 1. Cargar los datos
df <- read.csv("departments.csv")

# 2. Preparar la matriz de distancias
mat <- model.matrix(~ category - 1, data = df)
rownames(mat) <- df$department
d <- dist(mat)

# 3. Dendrograma
hc <- as.dendrogram(hclust(d))

# NUEVO: Reducir el tamaño de las letras (0.6 es el 60% del tamaño original)
hc <- set(hc, "labels_cex", 0.6) 

# 4. Colores
hc <- hc %>%
  color_branches(k = 5) %>%
  color_labels(k = 5)

# NUEVO: Limpiar cualquier configuración de dibujo circular anterior
circos.clear()

# NUEVO: Ajustar los márgenes del gráfico al mínimo
par(mar = rep(0, 4)) 

# 5. Gráfico en forma de abanico 
circlize_dendrogram(hc,
                    labels_track_height = 0.3,  
                    dend_track_height = 0.4)    


3. Bee Swarm Chart

  • Origen: -
  • Autoría: -
  • Ventajas: Muestra la distribución real de los datos. A diferencia de los diagramas de caja o violines, no oculta información.
  • Inconvenientes: Es inutil para conjuntos de datos grandes, ya que la falta de espacio obliga a que los puntos se amontonen.
  • Funcionamiento: Su mecánica base es un gráfico de dispersión. Cuando el algoritmo detecta que múltiples puntos comparten exactamente el mismo valor en el eje Y, empuja los puntos hacia la izquierda y la derecha a lo largo del eje X.
  • Tipos de datos admitidos: Variables cuantitativas cruzadas con variables cualitativas o categóricas.
  • Ejemplos típicos: Distribución de precios de casas por vecindario, resultados de pruebas divididos por grupos de edad…
  • Aplicaciones habituales: Análisis de distribuciones, comparación de grupos…
library(ggplot2)
library(ggbeeswarm)
library(stringr) 

df <- read.csv("Salary_Dataset_DataScienceLovers.csv")

df$Salary_in_K <- df$Salary / 1000

df$Job.Roles. <- str_remove_all(df$Job.Roles., ";")

ggplot(df, aes(x = Job.Roles., y = Salary_in_K, color = Job.Roles.)) +
  geom_quasirandom(alpha = 0.7, size = 1.5, varwidth = TRUE) + 
  theme_minimal() +
  labs(
    title = "Distribución de Salarios por Rol de Trabajo",
    subtitle = "Dataset: Data Science Lovers",
    x = "Rol de Trabajo",
    y = "Salario (en Miles)",
    color = "Rol de Trabajo"
  ) +
  theme(
    plot.title = element_text(face = "bold", size = 14),
    axis.text.x = element_text(angle = 45, hjust = 1) 
  )