我非常绝望地尝试在一个地块上调整一个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
所以我最终只会感到沮丧。
我非常感谢你的帮助,提前谢谢
岸堤
答案 0 :(得分:12)
对于基于网格的图形,包括网格(基于 rasterVis '绘图功能)的图形 gridExtra function grid.arrange()
+/-与par(mfcol=)
对基础R图形的作用相同。
library(gridExtra)
p1 <- levelplot(r1)
p2 <- levelplot(r2)
grid.arrange(p1, p2, ncol=2)
编辑另一种格子特定解决方案使用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))