Pregunta

Estoy tratando de salida de 6 cifras en una sola imagen, en un diseño de 3x2. Me gustaría hacer espacio adicional entre la fila superior y las dos filas inferiores. ¿Es esto posible utilizando R? He mirado a través de la documentación de la altura y la trama y parece que no puede encontrar una opción adecuada.

Aquí hay un código de ejemplo:

a = rnorm(100,100,10)
b = rnorm(100,100,10)

par(mfrow=c(3,2), oma=c(1,1,1,1), mar=c(2,2,2,2))
hist(a)
hist(b)
plot(a,b)
plot(a,b)
plot(a,b)
plot(a,b)

Esto es lo que las salidas de código:


text alt


Esto es lo que me gustaría que a la salida (I modificó esta imagen en un editor externo). Note el espacio entre la fila filas superior e inferior.


text alt


¿Fue útil?

Solución

La función layout() es su amigo. Por ejemplo, puede definir una matriz de trama

1 2
3 4
5 6
7 8

y luego poner en parcelas vacías para la tercera y cuarta. O simplemente se adhieren a seis y par llamada para agregar espacio extra en la parte inferior.

Otros consejos

Me puede pensar en tres maneras:

1) Utilice el parámetro mar gráfico para conjunto margen parcela

Puede recuperar los márgenes actuales con

currmar <- par()$mar

Puede establecer nuevos márgenes con

par("mar"=c(5, 4, 4, 2))

con el para los números de ser inferior, izquierda, arriba y márgenes derecho (ver ?par)

Se puede hacer varias llamadas a par para cada parcela, lo que puede cambiar el margen inferior solamente para las parcelas superiores.

2) usa la disposición para generar una rejilla irregular de diseño (ver ?layout para ejemplos)

3) Guardar la trama en .svg o .pdf y luego usar Inkscape (o cualquier software te gusta) para mover las parcelas.

Creo que ir con mar es la forma en que lo haría. Sin embargo, como se ve, desea que todas las parcelas sean los mismos. Por lo tanto, es necesario tener la misma cantidad despegado por mar en cada parcela en la parte superior e inferior.
En su caso se podría utilizar los siguientes números:
1. fila: par(mar=c(7,4,4,2))
2. consecutivas: par(mar=c(5,4,6,2))
3. consecutivas: par(mar=c(7,4,4,2))

De esta manera todas las parcelas ocupan la misma altura. Modificado el primer y el tercer número de tal manera que son los mismos para cada parcela de lograr esto. Sin embargo, en la advertencia:. Hay un poco de espacio en blanco adicional por debajo de las parcelas en la fila inferior

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top