tipos son que modelo los formatos formato datos r layout matrix plot raster

son - raster arcgis



R-trazando múltiples rásteres usando el diseño de la matriz (1)

En R (Win64), intento trazar una combinación de imágenes ráster e histogramas en una sola ventana de trazado usando el comando layout () con una matriz que define el diseño. Aquí hay un código de muestra con datos simplificados:

library(raster) r <- raster(ncols=5, nrows=5, xmn=1, xmx=5, ymn=1, ymx=5) rast1 <- rasterize(expand.grid(1:5,1:5), r, rnorm(25)) rast2 <- rasterize(expand.grid(1:5,1:5), r, rnorm(25)) rast3 <- rasterize(expand.grid(1:5,1:5), r, rnorm(25)) layout(matrix(c(1,2,3,4,1,2,3,5,1,2,3,6), 3, 4, byrow=T)) layout.show(6) plot(rast1, axes=F, ann=F, legend=F, box=F, useRaster=T) plot(rast2, axes=F, ann=F, legend=F, box=F, useRaster=T) plot(rast3, axes=F, ann=F, legend=F, box=F, useRaster=T) hist(rnorm(100), ann=F, axes=F) hist(rnorm(100), ann=F, axes=F) hist(rnorm(100), ann=F, axes=F)

Como puede ver, intento trazar tres imágenes ráster (rast1, rast2, rast3) que abarcan 1 columna y 3 filas cada una, con 3 histogramas a su lado, cada una de las cuales abarca 1 columna y 1 fila. El comando layout.show () da la idea.

Cuando ejecuto este código, parece que el primer comando de trazado (ráster) también restablece el diseño de la ventana de trazado, lo que hace que todos los gráficos subsiguientes se tracen en una cuadrícula estándar de 3x4 (con la 5ta gráfica solapando la primera). La configuración del diseño parece sólida, ya que puedo trazar seis histogramas en el diseño adecuado. Pero las tramas ráster estropean las cosas.

Sospecho que hay algo sobre el comando plot () en {raster} que está jugando con el comando layout (), pero no tengo idea de por qué o cómo. ¿Hay alguna otra forma de lograr este diseño? ¿Otro comando basado en ráster? ¿Hay alguna manera de restablecer el diseño entre tramas de trama?

Gracias por adelantado.


Puede haber un problema entre los métodos S4 y el diseño () aquí. Como solución temporal, parece que funciona para reemplazar plot () con image (). En lugar de plot (rast1, axes = F, ann = F, legend = F, box = F, useRaster = T), usa image (rast1, axes = F, ann = F, asp = 1) para obtener mapas de imagen cuadrados.