Dos ejemplos
# Horizontal
require(MASS)
boxplot(sugars ~ mfr, data = UScereal,
names = c('Mills', 'Kelloggs', 'Nabisco', 'Post',
'Quaker Oats', 'Purina'),
main = 'Contenido de azúcar por marca',
col = c("beige", "blanchedalmond", "bisque1",
"bisque2", "bisque3", "bisque4"),
xlab = 'Azúcar (gramos por porción)',
horizontal = TRUE)
# Vertical
boxplot(Ozone ~ Month,
data = airquality,
main = 'Calidad del aire',
xlab = 'mes',
ylab = 'ozone (ppb)',
col = 'skyblue')
Problema
Para que el gráfico sea útil es necesario que las variables se encuentren en un rango parecido y empleen la misma unidad de medida. Tomamos un ejemplo del data frame UScereal del paquete MASS, con información nutricional de cereales.
# Rango diferente
require(MASS)
boxplot(UScereal)
Como se observa, cada variable se encuentra en un rango muy diferente, pues utilizan diferentes unidades de medida y los diagramas de caja no proporcionan poca información práctica.
head(UScereal)
mfr calories protein fat sodium fibre carbo sugars
1 N 212.1212 12.121212 3.030303 393.9394 30.303030 15.15152 18.181818
2 K 212.1212 12.121212 3.030303 787.8788 27.272727 21.21212 15.151515
3 K 100.0000 8.000000 0.000000 280.0000 28.000000 16.00000 0.000000
4 G 146.6667 2.666667 2.666667 240.0000 2.000000 14.00000 13.333333
5 K 110.0000 2.000000 0.000000 125.0000 1.000000 11.00000 14.000000
6 G 173.3333 4.000000 2.666667 280.0000 2.666667 24.00000 10.666667
7 R 134.3284 2.985075 1.492537 298.5075 5.970149 22.38806 8.955224
8 P 134.3284 4.477612 0.000000 313.4328 7.462687 19.40299 7.462687
9 Q 160.0000 1.333333 2.666667 293.3333 0.000000 16.00000 16.000000
10 G 88.0000 4.800000 1.600000 232.0000 1.600000 13.60000 0.800000
.. ... ... ... ... ... ... ... ...
Variables not shown: shelf (int), potassium (dbl), vitamins (fctr)
Solución
Seleccionamos cuatro variables que con la misma unidad de medida —gramos por porción— y en un rango similar: proteínas, grasas, fibra y azúcares.
boxplot(UScereal[, c('protein', 'fat', 'fibre', 'sugars')],
names= c('protein', 'fat', 'fibre', 'sugars'))
Si deseamos alterar las unidades de separación del eje y, empleamos la función axis. En este caso lo fijamos en 2.
Entradas relacionadas
- Introducción al diagrama de caja (box plot) en R
- Diagrama de caja con intervalos de confianza para la mediana
- Diagramas de caja con ggplot2 en R. Una introducción
Referencias