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
edades["Ana"]
## Ana
## 9
edades[c("Luis", "SofĆa")]
## Luis SofĆa
## 8 10
edades["Luis"] <- 9
edades
## Ana Luis SofĆa
## 9 9 10
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"
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
# Bajo es mas pequeƱo que Medio
respuesta_factor[1] < respuesta_factor[2] # TRUE
## [1] TRUE
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:
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.
La siguiente capa define cómo se mostrarÔn los datos.
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()
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.
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.
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.ggplot(data = mtcars, aes(x = factor(cyl), y = mpg)) +
geom_boxplot() +
theme(
axis.text.y = element_text(size = 10, face = "italic")
)
size = 10
) y se cambia a cursiva
(face = "italic"
).axis.text.x
y
axis.text.y
por separado o al mismo tiempo.axis.text
sin .x
o
.y
, se aplica el cambio a ambos ejes
simultƔneamente.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.
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.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.
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.
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.
# 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())
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.
axis.title
)
"bold"
,
"italic"
) y alineación.axis.title.x
o
axis.title.y
.axis.text
)
angle
),
estilo de letra y visibilidad.axis.ticks
)
element_blank()
si no son
necesarias o recargan el diseƱo.axis.ticks.x
, axis.ticks.y
).element_text()
para aplicar estilos
personalizados.element_blank()
cuando quieras eliminar visualmente
elementos que no aporten información..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.
theme()
en ggplot2La siguiente imagen muestra un grƔfico con anotaciones
visuales que ayudan a identificar claramente quƩ elementos
pueden modificarse usando theme()
.
axis.ticks
)axis.text
)axis.title
)