
En el paquete
UsingR tenemos la función gráfica
simple.hist.and.boxplot que produce la figura que mostramos con el siguiente código:
> simple.hist.and.boxplot function (x, ...)
{
op <- par(no.readonly = TRUE)
on.exit(par(op))
layout(matrix(c(1, 2), 2, 1), heights = c(3, 1))
par(mai = c(1, 1, 1, 1)/2)
hist(x, xlab = FALSE, col = gray(0.95), yaxt = "n", ...)
rug(x)
boxplot(x, horizontal = TRUE)
}Observemos especialmente que se trata de combinar dos gráficos, el histograma y el boxplot. Pero el detalle que queremos destacar en este artículo es la disposición de los gráficos.
Hay dos parámetros que sirven para disponer varios gráficos en una misma figura. Por ejemplo, en la figura del artículo
Chiplot se han dibujado dos gráficos de dispersión en horizontal. Esto se consigue con la instrucción
oldpar <- par(mfrow = c(1,2))El vector
c(nr,nc) especifica el número de filas y de columnas y el parámetro
mfrow su escritura (por filas). También hay un parámetro
mfcol para escribir por columnas.
Recordar que la modificación de un parámetro es para toda la sesión, de manera que si queremos revertir el cambio debemos ejecutar
par(oldpar)Sin embargo, estos parámetros sólo dibujan gráficos del mismo tamaño. ¿Cómo se consique una disposición como la del gráfico que encabeza este artículo?

La respuesta es la instrucción
layout.
Básicamente, en la instrucción
layout debemos especificar una matriz de números correlativos 1,2,... (puede incluir ceros) que indicarán el orden de escritura. Un cero dejará la posición en blanco. La ventaja es que podemos definir las alturas de las filas y las anchuras de las columnas.
Para lograr la disposición de la figura anterior hacemos
> mm <- matrix(c(1,2), nrow = 2)
> layout(mm, heights = c(3,1))Observemos que la definición de las alturas es proporcional, es decir, el primer gráfico ocupará 3/(3+1) del total, mientras que el segundo 1/(3+1).
Otros detalles de la función
layout los dejaremos para otro artículo.