Recordemos que los paquetes solo se instalan una vez, pero deben cargarse cada vez que abrimos una nueva sesión de RStudio.
# Instalar paquetes nuevos (solo la primera vez)
install.packages("wesanderson")
install.packages("ggbeeswarm")
install.packages("ggdist")
# Cargar paquetes cada vez que abrimos una sesión nueva
library(tidyverse)
library(readxl)
library(wesanderson) # Paletas de colores inspiradas en Wes Anderson
library(ggbeeswarm) # Para graficar puntos individuales
library(ggdist) # Para gráficos de distribución tipo "halfeye"
Trabajaremos nuevamente con la base de datos
Tabla_camelida.xlsx. Puedes encontrarla en el repositorio
del curso o descargarla directamente haciendo click aquí.
camelidos <- read_excel("~/Desktop/work/0_Cuantitativa_2026/ANT305Q-2026/Clases/Clase2/Tabla camelida.xlsx")
camelidos
## # A tibble: 33 × 3
## Taxon Largo Ancho
## <chr> <dbl> <dbl>
## 1 LLAMA 80.3 35.4
## 2 LLAMA 71.6 21.2
## 3 LLAMA 70.9 22.0
## 4 LLAMA 70.6 22.3
## 5 LLAMA 69.1 22.7
## 6 LLAMA 68.7 20.8
## 7 LLAMA 67.8 20
## 8 LLAMA 66.6 21
## 9 LLAMA 65.9 20.3
## 10 LLAMA 65.8 21.2
## # ℹ 23 more rows
fill y
color.Podemos indicarle a ggplot2 que asigne colores
automáticamente según una variable categórica (como Taxon).
Para esto, incluimos fill = Taxon. Luego, si queremos
elegir nuestros propios colores, agregamos
scale_fill_manual().
ggplot(data = camelidos, aes(x = Ancho, fill = Taxon)) +
geom_histogram(binwidth = 1, color="black") +
scale_fill_manual(values = c("red", "blue"))
scale_x_continuous() y
scale_y_continuous().Podemos definir exactamente qué números aparecen en los ejes usando
la función seq(inicio, fin, cada cuantos números). Por
ejemplo, seq(0, 10, 2) generará la secuencia 0, 2, 4, 6, 8,
10.
ggplot(data = camelidos, aes(x = Ancho, fill = Taxon, color = Taxon)) +
geom_histogram(binwidth = 1, color = "black") +
scale_fill_manual(values = c("red", "blue")) +
scale_y_continuous(breaks = seq(0, 10, 2)) +
scale_x_continuous(breaks = seq(14, 36, 2))
labs().La función labs() nos permite cambiar los nombres que
aparecen en los ejes y agregar un título al gráfico. Es buena práctica
incluir las unidades de medida en las etiquetas de los ejes.
ggplot(data= camelidos, aes(x = Ancho, fill = Taxon, color = Taxon)) +
geom_histogram(binwidth = 1, color = "black") +
scale_fill_manual(values = c("red", "blue")) +
scale_y_continuous(breaks = seq(0, 10, 2)) +
scale_x_continuous(breaks = seq(14, 36, 2)) +
labs(x = "Ancho (cm)", y = "Frecuencia", title = "Ancho falange camélidos")
theme_*().ggplot2 incluye varios temas predefinidos que cambian la
apariencia general del gráfico, especialmente el color del fondo.
Algunos ejemplos son: theme_bw(),
theme_classic(), theme_dark(),
theme_gray(), theme_light(),
theme_void().
ggplot(data = camelidos, aes(x = Ancho, fill = Taxon, color = Taxon)) +
geom_histogram(binwidth = 1, color = "black") +
scale_fill_manual(values = c("red", "blue")) +
scale_y_continuous(breaks = seq(0, 10, 2)) +
scale_x_continuous(breaks = seq(14, 36, 2)) +
labs(x = "Ancho (cm)", y = "Frecuencia", title = "Ancho falange camélidos") +
theme_classic()
Los boxplots son una forma muy útil de visualizar la distribución de
una variable numérica para distintos grupos. Muestran la mediana, los
cuartiles y los valores atípicos. Para crearlos usamos la función
geom_boxplot().
A diferencia del histograma, aquí debemos especificar tanto el eje
x (variable categórica, como Taxon) como
el eje y (variable numérica, como Ancho o
Largo) dentro de aes().
ggplot(data = camelidos, aes(x = Taxon, y = Ancho)) +
geom_boxplot()
coord_flip().Si preferimos verlo en forma horizontal, podemos agregar la función
coord_flip().
ggplot(data = camelidos, aes(x = Taxon, y = Ancho)) +
geom_boxplot() +
coord_flip()
O bien intercambiando los ejes
ggplot(data = camelidos, aes(x = Ancho, y = Taxon)) +
geom_boxplot()
scale_fill_manual().Al igual que en el histograma, podemos asignar colores por grupo.
Para esto incluimos fill = Taxon en aes() y
luego definimos los colores con scale_fill_manual().
ggplot(data = camelidos, aes(x = Taxon, y = Ancho, fill = Taxon)) +
geom_boxplot() +
scale_fill_manual(values = c("purple", "green"))
scale_fill_brewer().En lugar de elegir los colores manualmente, podemos usar paletas de
colores prediseñadas disponibles en ggplot2 a través de
scale_fill_brewer(). Puedes explorar las opciones
disponibles en colorbrewer2.org.
ggplot(data = camelidos, aes(x = Taxon, y = Ancho, fill = Taxon)) +
geom_boxplot() +
scale_fill_brewer(palette = "GnBu")
Combinamos todo lo aprendido: colores, escala del eje, etiquetas y tema de fondo.
ggplot(data = camelidos, aes(x = Taxon, y = Ancho, fill = Taxon)) +
geom_boxplot() +
scale_fill_manual(values = c("purple", "green")) +
scale_y_continuous(breaks = seq(14, 36, 4)) +
labs(x = "Taxón", y = "Ancho (cm)", title = "Ancho falange camélidos") +
theme_classic()
Largo.Primero revisamos el rango de valores con summary() para
saber qué secuencia usar en el eje y.
summary(camelidos$Largo)
## Min. 1st Qu. Median Mean 3rd Qu. Max.
## 40.20 62.90 66.43 66.24 70.90 80.30
ggplot(data = camelidos, aes(x = Taxon, y = Largo, fill = Taxon)) +
geom_boxplot() +
scale_fill_manual(values = c("purple", "green")) +
scale_y_continuous(breaks = seq(38, 82, 4)) +
labs(x = "Taxón", y = "Largo (mm)", title = "Largo falange camélidos") +
theme_gray()
wesanderson.El paquete wesanderson ofrece paletas de colores
inspiradas en las películas del director Wes Anderson. Podemos ver todas
las paletas disponibles con la función names().
names(wesanderson::wes_palettes)
## [1] "BottleRocket1" "BottleRocket2" "Rushmore1"
## [4] "Rushmore" "Royal1" "Royal2"
## [7] "Zissou1" "Zissou1Continuous" "Darjeeling1"
## [10] "Darjeeling2" "Chevalier1" "FantasticFox1"
## [13] "Moonrise1" "Moonrise2" "Moonrise3"
## [16] "Cavalcanti1" "GrandBudapest1" "GrandBudapest2"
## [19] "IsleofDogs1" "IsleofDogs2" "FrenchDispatch"
## [22] "AsteroidCity1" "AsteroidCity2" "AsteroidCity3"
Para usar una paleta de este paquete dentro de ggplot2,
reemplazamos los colores en scale_fill_manual() por la
función wes_palette(), indicando el número de colores que
necesitamos (n=2) y el nombre de la paleta.
ggplot(data = camelidos, aes(x = Taxon, y = Largo, fill = Taxon)) +
geom_boxplot() +
scale_y_continuous(breaks = seq(38, 90, 4)) +
labs(x = "Taxón", y = "Largo (mm)", title = "Largo falange camélidos") +
theme_gray() +
scale_fill_manual(values = wes_palette(n = 2, "GrandBudapest1"))
Recursos útiles para explorar más paletas y opciones de color en R:
Los raincloud plots son una forma más completa de visualizar distribuciones de datos. Combinan tres elementos en un solo gráfico:
stat_halfeye): muestra la
distribución de probabilidad estimada.geom_boxplot): muestra la
mediana y los cuartiles.geom_beeswarm):
muestra cada observación de forma individual.Esta combinación evita ocultar información importante que los boxplots tradicionales pueden omitir.
ggplot(data = camelidos, aes(x = Taxon, y = Largo, fill = Taxon)) +
# Capa 1: distribución tipo "nube"
ggdist::stat_halfeye(
adjust = 0.5, width = 0.3, .width = 0,
justification = -0.3, point_colour = NA, alpha = 0.7
) +
# Capa 2: boxplot compacto
geom_boxplot(width = 0.1) +
# Capa 3: puntos individuales ("lluvia")
geom_beeswarm(alpha = 0.5, color = "blue", cex = 1.5) +
scale_fill_brewer(palette = "Dark2") +
scale_y_continuous(limits = c(38, 82), breaks = seq(38, 82, 2)) +
labs(x = "Taxón", y = "Largo (mm)", title = "Largo falange camélidos") +
theme_classic()+
theme(legend.position = "none")
Recursos adicionales sobre visualización en R: