使用raster
包及其plot
函数,我想将Raster*
对象的六个图按列排列为2行3列。因此,我设置了如下布局:
layout(mat=matrix(1:6, nrow=2, ncol=3), heights=c(1,1), widths=c(2,1,1))
调用layout.show(6)
会得到这个预览,这正是我想要的:
然而,在第一个图被放置在1所在的位置(如预期的那样)之后,第二个图被放置在3所在的位置(不如预期的那样)。为什么?**
当我再次调用layout.show(6)
时,我得到了这个,这不是我想要的:
有趣的是,使用par(mfcol=c(2,3))
而不是layout
* 也 * 按行放置图(即行为类似于mfrow
)。
(我知道我可以重新安排plot
调用的顺序,但我想知道为什么这不像我期望的那样工作。
1条答案
按热度按时间enyaitl31#
你不能用
plot(Raster*)
来设置布局本身;从而覆盖您的设置。你可以使用image(x)
来代替plot(x)
,但是这样你就不会得到一个图例。也许最好的方法是使用
terra
包(terra
是raster
的替代品)。另请注意参数“clip”。