šŸ”¢ Vectores nombrados

En R, un vector nombrado te permite asignar un nombre a cada elemento del vector. Esto hace que el vector sea mƔs legible y te permite acceder a los valores por su nombre.

# Crear un vector normal
edades <- c(9, 8, 10)

# Agregar nombres a cada valor
names(edades) <- c("Ana", "Luis", "SofĆ­a")

# Mostrar el vector nombrado
edades
##   Ana  Luis SofĆ­a 
##     9     8    10

TambiƩn puedes crear un vector nombrado desde el inicio:

edades <- c(Ana = 9, Luis = 8, SofĆ­a = 10)
edades
##   Ana  Luis SofĆ­a 
##     9     8    10

Acceder a elementos por nombre

edades["Ana"]
## Ana 
##   9
edades[c("Luis", "SofĆ­a")]
##  Luis SofĆ­a 
##     8    10

Modificar elementos por nombre

edades["Luis"] <- 9
edades
##   Ana  Luis SofĆ­a 
##     9     9    10

🧭 Factores

Los factores son vectores especiales que se usan para representar categorĆ­as (variables cualitativas), como sexo, tipo de tratamiento, o niveles educativos.

# Vector de texto
sexo <- c("Mujer", "Hombre", "Mujer", "Mujer", "Hombre")

# Convertirlo en factor
sexo_factor <- factor(sexo)
sexo_factor
## [1] Mujer  Hombre Mujer  Mujer  Hombre
## Levels: Hombre Mujer

Esto le asigna internamente un nĆŗmero a cada categorĆ­a:

as.numeric(sexo_factor)
## [1] 2 1 2 2 1
levels(sexo_factor)
## [1] "Hombre" "Mujer"

Especificar niveles y su orden

Puedes controlar el orden de los niveles:

niveles <- c("Bajo", "Medio", "Alto")
respuesta <- c("Medio", "Alto", "Bajo", "Bajo", "Alto")
respuesta_factor <- factor(respuesta, levels = niveles, ordered = TRUE)
respuesta_factor
## [1] Medio Alto  Bajo  Bajo  Alto 
## Levels: Bajo < Medio < Alto

Comparaciones entre factores ordenados

# Bajo es mas pequeƱo que Medio
respuesta_factor[1] < respuesta_factor[2]  # TRUE
## [1] TRUE

šŸŽØ Introducción a la gramĆ”tica de ggplot2

La gramÔtica de ggplot2 se basa en capas que se agregan secuencialmente para construir una visualización. Cada capa tiene una función específica:


🧱 Capa 1: Datos y mapeo estético (ggplot(aes()))

  • data =: se indica el data frame que contiene los datos.
  • aes(): define las columnas que se usarĆ”n para los ejes y atributos estĆ©ticos.
library(ggplot2)
## Warning: package 'ggplot2' was built under R version 4.3.3
# Primera capa: datos y asignación de ejes
ggplot(data = mtcars, aes(x = gear, y = mpg))

Aquƭ no se ve nada todavƭa porque no hemos definido el tipo de grƔfico.


šŸ–¼ Capa 2: Tipo de grĆ”fico (geom)

La siguiente capa define cómo se mostrarÔn los datos.

Tipos comunes:

Función Descripción
geom_col() GrƔfico de barras
geom_point() Dispersión o puntos
geom_boxplot() Boxplot
geom_tile() Heatmap
geom_density() Densidad
# Ejemplo: grƔfico de barras
ggplot(data = mtcars, aes(x = factor(gear), y = mpg)) +
  geom_col()

# Ejemplo: grÔfico de dispersión
ggplot(data = mtcars, aes(x = hp, y = mpg)) +
  geom_point()

# Ejemplo: boxplot por nĆŗmero de cilindros
ggplot(data = mtcars, aes(x = factor(cyl), y = mpg)) +
  geom_boxplot()


šŸŽØ Capa 3: EstĆ©tica y personalización

La estƩtica del grƔfico se ajusta con theme(), xlab(), ylab(), ggtitle(), etc.

La función theme() en ggplot2 permite alterar de manera específica los elementos visuales del grÔfico.
Una parte muy comĆŗn de modificar es el texto de los ejes, conocido como axis.text.

Este texto incluye las etiquetas numéricas o categóricas que se colocan automÔticamente en los ejes x e y para representar los valores correspondientes.


āŒ Eliminar completamente el texto de los ejes

library(ggplot2)

ggplot(data = mtcars, aes(x = factor(cyl), y = mpg)) +
  geom_boxplot() +
  theme(axis.text = element_blank())

šŸ”Ž En este caso, se usa axis.text = element_blank() para eliminar por completo las etiquetas de ambos ejes.
Esto puede ser útil si el grÔfico ya es suficientemente claro por sí solo o si queremos ahorrar espacio visual.


šŸŽÆ Modificar solo el texto del eje X

ggplot(data = mtcars, aes(x = factor(cyl), y = mpg)) +
  geom_boxplot() +
  theme(
    axis.text.x = element_text(size = 14, face = "bold", angle = 0)
  )

  • axis.text.x: se refiere solo al texto del eje horizontal (X).
  • size = 14: aumenta el tamaƱo del texto (puedes usar tambiĆ©n size = rel(1.5)).
  • face = "bold": cambia el estilo del texto (otras opciones: "italic", "plain").
  • angle = 0: mantiene el texto horizontal.

šŸŽÆ Modificar solo el texto del eje Y

ggplot(data = mtcars, aes(x = factor(cyl), y = mpg)) +
  geom_boxplot() +
  theme(
    axis.text.y = element_text(size = 10, face = "italic")
  )

  • AquĆ­ se personaliza el texto del eje vertical (Y).
  • Se reduce el tamaƱo (size = 10) y se cambia a cursiva (face = "italic").

🧩 Nota importante:

  • Puedes modificar axis.text.x y axis.text.y por separado o al mismo tiempo.
  • Si usas axis.text sin .x o .y, se aplica el cambio a ambos ejes simultĆ”neamente.

šŸŽØ Modificando axis.title y axis.ticks con theme()

AdemƔs de axis.text, en ggplot2 tambiƩn puedes modificar:

  • axis.title: los tĆ­tulos de los ejes (por ejemplo, ā€œEje Xā€, ā€œEje Yā€).
  • axis.ticks: las pequeƱas marcas que indican las posiciones de los valores en los ejes.

Estas capas pueden ayudarte a personalizar la visualización para hacerla mÔs clara o mÔs estética.


šŸ–Šļø Modificar el tĆ­tulo del eje X (axis.title.x)

library(ggplot2)

ggplot(data = mtcars, aes(x = factor(cyl), y = mpg)) +
  geom_boxplot() +
  theme(axis.title.x = element_text(size = 16, face = "bold", color = "blue")) +
  xlab("NĆŗmero de cilindros")

āœ… Explicación:

  • axis.title.x: modifica solo el tĆ­tulo del eje X.
  • size: controla el tamaƱo del texto.
  • face: estilo ("bold", "italic", etc.).
  • color: permite definir un color.

šŸ–Šļø Modificar el tĆ­tulo del eje Y (axis.title.y)

ggplot(data = mtcars, aes(x = factor(cyl), y = mpg)) +
  geom_boxplot() +
  theme(axis.title.y = element_text(size = rel(1.5), color = "darkgreen")) +
  ylab("Millas por galón")

āœ… AquĆ­ usamos rel(1.5) para escalar el tamaƱo y un color especĆ­fico.


āŒ Eliminar los tĆ­tulos de ambos ejes

ggplot(data = mtcars, aes(x = factor(cyl), y = mpg)) +
  geom_boxplot() +
  theme(
    axis.title.x = element_blank(),
    axis.title.y = element_blank()
  )

šŸ”Ž Útil cuando los tĆ­tulos no aportan información adicional.


šŸŽÆ Eliminar las marcas (axis.ticks)

ggplot(data = mtcars, aes(x = factor(cyl), y = mpg)) +
  geom_boxplot() +
  theme(axis.ticks = element_blank())

āœ… Esto elimina todas las pequeƱas lĆ­neas (ticks) de ambos ejes.


šŸ”§ Modificar solo las marcas del eje X o Y

# Solo eje X
ggplot(data = mtcars, aes(x = factor(cyl), y = mpg)) +
  geom_boxplot() +
  theme(axis.ticks.x = element_blank())

# Solo eje Y
ggplot(data = mtcars, aes(x = factor(cyl), y = mpg)) +
  geom_boxplot() +
  theme(axis.ticks.y = element_blank())


šŸ“Œ Resumen: Personalización de ejes con theme() en ggplot2

En esta sección exploramos cómo personalizar los elementos visuales de un grÔfico utilizando la función theme() de ggplot2. Esta herramienta es fundamental para adaptar tus visualizaciones a distintas audiencias y hacerlas mÔs claras, impactantes y profesionales.

āœ… Elementos que puedes modificar:

  1. TĆ­tulos de ejes (axis.title)
    • Se refiere a los tĆ­tulos que describen lo que representa cada eje.
    • Puedes modificar su tamaƱo, color, estilo ("bold", "italic") y alineación.
    • Se puede aplicar por separado con axis.title.x o axis.title.y.
  2. Texto de ejes (axis.text)
    • Representa los valores o categorĆ­as que se muestran en los ejes.
    • Puedes personalizar su tamaƱo, orientación (con angle), estilo de letra y visibilidad.
    • Se usa comĆŗnmente para mejorar la legibilidad o resaltar grupos importantes.
    • Ejemplos Ćŗtiles incluyen rotar los textos del eje X o hacer mĆ”s pequeƱo el texto del eje Y si hay muchas marcas.
  3. Marcas en los ejes (axis.ticks)
    • Son las pequeƱas lĆ­neas que indican la ubicación de los valores en los ejes.
    • Puedes eliminarlas con element_blank() si no son necesarias o recargan el diseƱo.
    • TambiĆ©n puedes desactivarlas individualmente (axis.ticks.x, axis.ticks.y).

šŸŽÆ Buenas prĆ”cticas:

  • Elige los elementos a modificar segĆŗn la necesidad del grĆ”fico: claridad, espacio o Ć©nfasis.
  • Usa element_text() para aplicar estilos personalizados.
  • Usa element_blank() cuando quieras eliminar visualmente elementos que no aporten información.
  • Puedes aplicar estilos globales o dirigirte a un eje en especĆ­fico usando .x o .y.

Este nivel de control permite adaptar cada grÔfico a su propósito comunicativo, facilitando la interpretación de los datos por parte del lector.

Ilustración del uso de theme() en ggplot2

La siguiente imagen muestra un grƔfico con anotaciones visuales que ayudan a identificar claramente quƩ elementos pueden modificarse usando theme().

  • šŸ”µ En azul: las marcas o ā€œticksā€ (axis.ticks)
  • šŸ”“ En rojo: el texto de los ejes (axis.text)
  • 🟢 En verde: los tĆ­tulos de los ejes (axis.title)
  • TambiĆ©n se muestra cómo se estructuran las capas del grĆ”fico y su sintaxis bĆ”sica
Esquema sobre ggplot2 y theme()
Esquema sobre ggplot2 y theme()