Dav*_*rts 6 layout plot r raster matrix
在R(Win64)中,我试图使用layout()命令在一个绘图窗口中绘制光栅图像和直方图的组合,并使用定义布局的矩阵.这是一些简化数据的示例代码:
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)
Run Code Online (Sandbox Code Playgroud)
如您所见,我正在尝试绘制三个光栅图像(rast1,rast2,rast3),每个图像跨越1列,每行3行,旁边有3个直方图,每个直方图跨越1列和1行.layout.show()命令给出了这个想法.
当我运行此代码时,似乎第一个绘图(栅格)命令也会重置绘图窗口的布局,导致所有后续绘图在标准3x4网格中绘制(第5个绘图现在与第一个绘图重叠).布局设置似乎很合理,因为我可以在适当的布局中绘制六个直方图.但是光栅图弄得很糟糕.
我怀疑{raster}中的plot()命令有些东西正在弄乱layout()命令,但我不知道为什么或如何.有没有其他方法来实现这种布局?另一个基于栅格的命令?有没有办法重置栅格图之间的布局?
提前致谢.
S4方法和layout()之间可能存在问题.作为一种解决方法,它似乎可以用plot()替换plot().而不是绘图(rast1,axes = F,ann = F,legend = F,box = F,useRaster = T),使用image(rast1,axes = F,ann = F,asp = 1)来获得方形图像映射.