gpt4 book ai didi

R - 使用矩阵布局绘制多个栅格

转载 作者:行者123 更新时间:2023-12-04 15:14:00 26 4
gpt4 key购买 nike

在 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)

如您所见,我正在尝试绘制三个光栅图像(rast1、rast2、rast3),每个图像跨越 1 列和 3 行,旁边有 3 个直方图,每个直方图跨越 1 列和 1 行。 layout.show() 命令给出了这个想法。

当我运行此代码时,似乎第一个绘图(光栅)命令也重置了绘图窗口的布局,导致所有后续绘图在标准 3x4 网格中绘图(第 5 个绘图现在与第一个重叠)。布局设置看起来很合理,因为我可以在正确的布局中绘制六个直方图。但是光栅图把事情搞砸了。

我怀疑 {raster} 中的 plot() 命令有一些与 layout() 命令混淆的东西,但我不知道为什么或如何。有没有其他方法可以实现这种布局?另一个基于光栅的命令?有没有办法重置光栅图之间的布局?

提前致谢。

最佳答案

S4 方法和 layout() 之间可能存在问题。作为一种解决方法,似乎可以用 image() 替换 plot()。而不是 plot(rast1, axes=F, ann=F, legend=F, box=F, useRaster=T),使用 image(rast1, axes=F, ann=F, asp=1) 来获得方形图像 map 。

关于R - 使用矩阵布局绘制多个栅格,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12133804/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com