27.17 Diagrama de cajas para relacionar más de una variable
ggplot(data = saber,
mapping = aes(x= desemp_ingles, y = punt_lectura_critica)) +
geom_boxplot() +
labs(title = "Desempeño en Lectura",
x = "Desempeño en inglés",
y = "Puntaje en lectura en Saber 11",
caption = "Fuente: ICFES") +
theme_minimal()
Ver los datos mejora el entendimiento:
ggplot(data = saber,
mapping = aes(x= desemp_ingles, y = punt_lectura_critica)) +
geom_boxplot() +
geom_point(position = position_jitter(seed = 1, width = .35),
alpha = .2, col = 'maroon') +
labs(title = "Desempeño en Lectura",
x = "Desempeño en inglés",
y = "Puntaje en lectura en Saber 11",
caption = "Fuente: ICFES") +
theme_minimal()
Obsérvese el efecto fluctuante (jitter). Se trata de añadir una perturbación aleatoria horizontalmente. El ancho width indica el nivel de dispersión horizontal.
En el caso de variables cuantitativas
El argumento breaks dentro de scale_*_continuous permite indicar en donde se deben poner las marcas en los ejes.
ggplot(data = saber,
mapping = aes(x = estu_inse_individual,
y = punt_ingles, col = desemp_ingles)) +
geom_point(alpha = 0.4) +
geom_smooth(method = "lm") +
scale_x_continuous(breaks = c(10, 30, 50, 70, 90)) +
scale_y_continuous(breaks = seq(5, 100, 5)) +
scale_color_manual(values = c('#0077BB', '#33BBEE', '#009988', '#EE7733', '#CC3311')) +
theme_minimal()
Otros argumentos útiles en este caso son limits para mostrar solamente un rango de datos y labels para indicar el nombre o expresión de las etiquetas, y también para indicar algún formato proveniente del paquete scales.
ggplot(data = saber,
mapping = aes(x = estu_inse_individual,
y = punt_ingles)) +
geom_point(col = '#c31', alpha = 0.4) +
geom_smooth(method = 'lm', col = '#c31') +
scale_x_continuous(breaks = seq(from = 20, to = 80, by = 5),
limits = c(30, 70)) +
scale_y_continuous(breaks = c(30, 40, 50, 60, 70, 80, 90, 100),
limits = c(20, 50)) + ggtitle('Detalle de A-')