多个(rasterVis)级别图

时间:2014-02-25 17:37:37

标签: r levelplot rastervis

我非常绝望地尝试在一个地块上调整一个rasterstack的两个关卡。似乎rasterVis::levelplot没有使用par(mfrow = c(...))选项来拆分窗格。使用两个rasterstacks的例子,它们应在新的绘图窗口上并排排列:

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)上绘制。

我尝试使用levelplot功能将print的呼叫包围起来,该功能需要split以及newpage = false个选项。不幸的是,我没有理解如何正确使用split所以我最终只会感到沮丧。

我非常感谢你的帮助,提前谢谢

岸堤

1 个答案:

答案 0 :(得分:12)

对于基于网格的图形,包括网格(基于 rasterVis '绘图功能)的图形 gridExtra function grid.arrange() +/-与par(mfcol=)对基础R图形的作用相同。

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

enter image description here

编辑另一种格子特定解决方案使用split=参数print.trellis(),格子图的绘图方法(ht baptiste&amp; amp; ;OscarPerpiñán)。 split=采用四个数字的向量。向量的第3和第4个元素给出了显示中的列数和行数,而第1和第2个元素给出了正在打印的对象的列和行位置。

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