gpt4 book ai didi

r - 多个(rasterVis)水平图

转载 作者:行者123 更新时间:2023-12-02 03:57:15 25 4
gpt4 key购买 nike

我非常绝望地试图在一个图上调整一个光栅堆栈的两个水平图。似乎 rasterVis::levelplot 不采用 par(mfrow = c(...)) 选项来分割 Pane 。使用两个光栅堆栈的示例,这两个光栅堆栈应并排排列在新的绘图窗口上:

f <- system.file("external/test.grd", package="raster")
r1 <- stack(raster(f),log(raster(f)))
r2 <- stack(raster(f)-500,raster(f)+500)

par(mfrow=c(2,2))
levelplot(r1)
levelplot(r2)

这里,levelplot(r1)正在全尺寸窗口上绘制,而levelplot(r2)不幸的是在levelplot(r1)上绘制.

我尝试了一下,用 print 函数包装对 levelplot 的调用,该函数需要 split 以及 newpage = false 选项。不幸的是,我不知道如何正确使用 split,所以我最终除了沮丧之外一无所获。

非常感谢您的帮助,提前致谢

安迪

最佳答案

对于基于网格的图形,包括由lattice(它是rasterVis'绘图函数的基础)生成的图形,gridExtra 函数 grid.arrange() 的作用与 par(mfcol=) 对基本 R 图形的作用 +/- 相同。

library(gridExtra)
p1 <- levelplot(r1)
p2 <- levelplot(r2)
grid.arrange(p1, p2, ncol=2)

enter image description here

编辑:另一种格子特定解决方案使用 print.trellis()split= 参数,格子图的绘图方法(h.t. baptiste & Oscar Perpiñán)。 split= 接受一个由四个数字组成的向量。向量的第三个和第四个元素给出了显示中的列数和行数,而它的第一个和第二个元素给出了正在打印的对象的列位置和行位置。

library(gridExtra)
p1 <- levelplot(r1)
p2 <- levelplot(r2)
print(p1, split=c(1,1,2,1), more=TRUE)
print(p2, split=c(2,1,2,1))

关于r - 多个(rasterVis)水平图,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22021889/

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