Una columna o variable
Es necesario crear una variable falsa de agrupación factor(0). Además, borramos la etiqueta y las marcas de este eje ficticio x.
# ggplot2
require(ggplot2
bp <- ggplot(iris, aes(factor(0), Sepal.Width))
bp + geom_boxplot() + xlab("") + scale_x_discrete(breaks = NULL)
- Mediante la función qplot.
qplot(data = iris, x = factor(0), y = Sepal.Width, geom = "boxplot", xlab = "") + scale_x_discrete(breaks = NULL)
- El equivalente con boxplot {graphics}.
# Base graphics
boxplot(iris$Sepal.Width)
Todas las columnas
Empleamos el paquete reshape2 para convertir los datos en el formato adecuado con la función melt antes de representarlos. Representará solamente aquellas columnas de tipo numérico.
library(reshape2)
ggplot(data = melt(iris), aes(x = variable, y = value)) + geom_boxplot(aes(fill = variable))
Selección las columnas
library(MASS)
ggplot(data = melt(UScereal), aes(x = variable, y = value)) +
geom_boxplot(aes(fill = variable))
Como cada variable se encuentra en un rango muy diferente, seleccionamos algunas columnas con rangos similares.
data <- UScereal[, c('protein', 'fat', 'fibre', 'sugars')]
ggplot(data = melt(data), aes(x = variable, y= value)) +
geom_boxplot(aes(fill = variable))
Notas
Los diagramas de caja en ggplot2, al contrario que con la función boxplot, están pensados para representar dos variables. Necesitan 3 argumentos:
data = data frame, en el caso de la función qplot es necesario que vaya precedido de data =.
x = un factor o variable categórica. Dentro de la función aes en el caso de ggplot.
y = un vector numérico. Dentro de la función aes en el caso de ggplot.
En el caso de una sola variable necesitamos crear un factor o variable categórica falsa factor(0) para que agrupe por el mismo. En el caso de varias columnas necesitamos que los valores (vector numérico) en una sola columna, lo que obtenemos con la función melt. Automáticamente toma la columna Species como id variables (identifier variables) por ser la única variable categórica (factor) del data frame.
head(melt(iris))
Using Species as id variables
Species variable value
1 setosa Sepal.Length 5.1
2 setosa Sepal.Length 4.9
3 setosa Sepal.Length 4.7
4 setosa Sepal.Length 4.6
5 setosa Sepal.Length 5.0
6 setosa Sepal.Length 5.4
Referencias