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()Catálogo de Visualizaciones en R
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.
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)
)