library(readxl)
library(dplyr)
DulcesM_M <- read_excel("DulcesM&M.xlsx")
head(DulcesM_M)
## # A tibble: 6 × 2
## Color Peso
## <chr> <dbl>
## 1 Rojo 0.751
## 2 Naranja 0.735
## 3 Amarillo 0.883
## 4 Café 0.696
## 5 Azul 0.881
## 6 Verde 0.925
En esta sección se traduce lo que se hizo con dplyr a representaciones visuales simples.
Cuando hablamos de gráficos base nos referimos al conjunto de herramientas gráficas incluidas de forma nativa en el sistema, diseñadas para generar visualizaciones de manera directa a partir de objetos simples como vectores o data frames.
Son útiles para exploración inicial de datos, ya que facilitan la detección rápida de patrones, distribuciones y posibles anomalías antes de pasar a herramientas más complejas de visualización.
Continuamos trabajando con el dataframe de dulces M&M.
Un gráfico de barras representa valores asociados a diferentes categorías mediante barras rectangulares.
Se utiliza para comparar grupos, por ejemplo, la cantidad de observaciones por categoría o el promedio de una variable en cada grupo.
Este tipo de gráfico facilita la comparación entre categorías e identifica rápidamente cuáles presentan valores más altos o más bajos.
# Resumen ya calculado desde dplyr
resumen_color <- DulcesM_M %>%
group_by(Color) %>%
summarise(
Promedio = mean(Peso),
Desviacion = sd(Peso),
Total = n()
)
resumen_color
## # A tibble: 6 × 4
## Color Promedio Desviacion Total
## <chr> <dbl> <dbl> <int>
## 1 Amarillo 0.834 0.0395 8
## 2 Azul 0.844 0.0428 27
## 3 Café 0.848 0.0795 8
## 4 Naranja 0.858 0.0501 25
## 5 Rojo 0.864 0.0576 13
## 6 Verde 0.864 0.0570 19
# Preparar vectores para gráfico base
colores <- resumen_color$Color
promedios <- resumen_color$Promedio
# Gráfico de comparación de promedios (barras)
barplot(
promedios,
names.arg = colores,
col = c("yellow1","skyblue2","chocolate","orange","red2", "darkolivegreen2"),
main = "Promedio de peso por color de M&M",
xlab = "Color",
ylab = "Promedio de peso"
)
# Si observamos el primer gráfico, vemos que el peso promedio de los M&M es muy parecido para todos los colores. A simple vista parecería que el color no tiene un efecto importante sobre el peso, porque las barras tienen prácticamente la misma altura.
# Gráfico de compración de varianza
barplot(
resumen_color$Desviacion,
names.arg = colores,
col=c("yellow1","skyblue2","chocolate","orange","red2", "darkolivegreen2"),
main = "Variabilidad por color de M&M",
xlab = "Color",
ylab = "Desviación estándar"
)
# El segundo gráfico cuenta una historia diferente. Aunque los promedios son similares, la variabilidad cambia entre los colores. Esto significa que algunos colores tienen pesos mucho más dispersos, mientras que en otros los pesos son más consistentes y se concentran alrededor de su promedio.
Este ejemplo nos muestra por qué no debemos quedarnos únicamente con el promedio. Dos grupos pueden tener el mismo valor promedio y, aun así, comportarse de manera muy distinta. Por eso, en un análisis de datos siempre conviene estudiar tanto la tendencia central como la variabilidad.
Un histograma es una gráfica que muestra la distribución de una variable numérica agrupando los datos en intervalos o bins.
La altura de cada barra representa la frecuencia o cantidad de observaciones dentro de cada intervalo.
Este tipo de gráfico permite visualizar la forma de la distribución de los datos, identificar concentraciones, dispersión y posibles asimetrías.
# Histograma de los pesos de los dulces
DulcesM_M$Peso %>% hist(col = "salmon",
breaks = 15,
xlab = "Peso (gr)",
ylab = "Frecuencia",
main = "Conteo pesos dulces M&M")
# La mayor frecuencia de dulces tiene un peso entre 0.8 y 0.9 gramos. Se interpreta que los pesos de los M&M tienden a agruparse alrededor de ese rango.
Un diagrama de caja y bigotes es una gráfica que resume la distribución de una variable numérica.
La caja representa el 50% central de los datos entre el primer y el tercer cuartil, y la línea dentro de la caja indica la mediana.
Los bigotes se extienden hacia los valores más extremos no atípicos y los puntos fuera de ellos representan posibles valores atípicos.
Este gráfico permite visualizar rápidamente la dispersión y la presencia de valores extremos.
# Diagrama de caja y bigotes de pesos de los dulces
boxplot(DulcesM_M$Peso)
DulcesM_M %>% boxplot(Peso ~ Color, data = .,
col=c("yellow1","skyblue2","chocolate",
"orange","red2", "darkolivegreen2"),
xlab = "Colores",
ylab = "Peso",
main = "Caja bigotes por color")
axis(2, at=seq(0.7, 1.1, by = 0.02)) # agregamos más marcas para el eje Y
# agregar linea horizontal en la mediana
abline(h = median(DulcesM_M$Peso), col = "blue", lwd = 2, lty = 4)
# abline puede añadir líneas horizontales, verticales o rectas a una gráfica existente.
La mediana del peso es muy similar para todos los colores, lo que indica que, en términos generales, no existen diferencias importantes en el peso típico de los M&M según su color.
Además, las cajas presentan tamaños relativamente parecidos, lo que sugiere que el 50% central de las observaciones tiene una dispersión similar entre los distintos grupos.
Si en el gráfico anterior observamos que los dulces café tienen la mayor desviación estándar, ¿por qué aquí su caja no parece ser la más grande?
La respuesta está en que ambos gráficos resumen la dispersión de manera diferente. La desviación estándar se calcula utilizando todas las observaciones del grupo, mientras que el diagrama de caja se construye principalmente a partir de los cuartiles, es decir, del 50% central de los datos.
En el caso de los dulces café, la mayor variabilidad se debe a la presencia de algunos valores más alejados del resto de las observaciones. Estos valores incrementan la desviación estándar, pero tienen un efecto mucho menor sobre el tamaño de la caja del boxplot.
summary(filter(DulcesM_M, Color == "Café")$Peso)
## Min. 1st Qu. Median Mean 3rd Qu. Max.
## 0.6960 0.8315 0.8570 0.8478 0.8700 0.9820
No existe una única medida o gráfica que describa completamente un conjunto de datos. Un buen análisis integra la información que aporta cada herramienta.
Los gráficos base son funcionales pero limitados cuando aumenta la complejidad del análisis.
ggplot2 introduce un enfoque distinto: los gráficos se construyen por capas, donde cada elemento (datos, estética, geometría) se añade de forma modular.
Este enfoque permite: