Animado por los comentarios al anterior artículo sobre la
disposición de los gráficos con ayuda de la función
layout, vamos a seguir explicando otras características de esta función.
Ya indiqué que es posible dejar una casilla en blanco, basta poner un cero en la matriz, pero también es posible controlar las alturas o anchuras en centímetros. Para ello se utiliza la función
lcm(). Veamos un ejemplo.
Con este código
> layout(matrix(c(1,0,2), ncol=1), heights=c(2, lcm(0.5), 1))se consigue esta figura

en el que tenemos 0.5 cm entre los dos gráficos.
Otro aspecto a tener en cuenta es la relación de la altura con la anchura. Si queremos que ésta sea de 1:1, lo podemos indicar con el parámetro
respect=T.
> layout(matrix(c(1,0,2), ncol=1), heights=c(2, lcm(0.5), 1), respect = T)El resultado es

Si en la matriz se repite algún número, entonces el gráfico ocupará esas casillas (consecutivas).
Ejemplo:
> layout(rbind(c(1,2),
c(0,0),
c(3,3)),
heights=c(2,lcm(0.5),1),
respect=T)

Observemos que en esta figura la relación de aspecto se fija en 1 para la altura de la tercera fila (gráfico 3), de modo que el parámetro
respect=T hace que la anchura de
una celda de la tercera fila también sea 1 (de las dos que hay).
Finalmente podemos decir que el parámetro
respect también admite como valor una matriz del mismo tamaño que la que indica la
layout, pero con ceros y un uno. El uno marca la posición de la celda para la que hay que respetar la relación de aspecto.
Más ejemplos e información en el libro de Paul Murrell
R Graphics Ed. Chapman & Hall/CRC.
Por cierto, los gráficos que muestran la
layout actual se consiguen con la instrucción
> layout.show(n)donde
n es el número máximo de gráficos.