【发布时间】:2017-06-26 01:13:55
【问题描述】:
我正在尝试使用rasterVis 包的levelplot 函数结合gridExtra 的grid.arrange 绘制一个包含七个栅格的面板。
通过使用以下代码,我几乎得到了我需要的东西:
# load required packages
library(rasterVis)
library(gridExtra)
# load sample raster
f <- system.file("external/test.grd", package="raster")
r <- raster(f)
# create plots
p1 <- levelplot(r, xlab=NULL, ylab=NULL, margin=FALSE)
p2 <- levelplot(r*2, xlab=NULL, ylab=NULL, margin=FALSE,colorkey=FALSE)
# put plots in list
p.list <- list(p1,p2,p2,p2,p2,p2,p2)
# create layout
lay <- rbind(c(1,1,1),
c(2,3,4),
c(5,6,7))
# arrange plots
grid.arrange(grobs=p.list, layout_matrix=lay)
产生这个数字:
不过,还有一些地方需要改进:
- 如何减少底部行图之间的空白?
- 如何为六个底部栅格添加单个组合图例,优先放置在图的底部?
这可以使用rasterVis 和gridExtra 实现吗?有没有其他方法可以使用?
【问题讨论】:
-
为每个图提供边距并根据需要减少它。
-
@Masoud,感谢您的建议。但是,如果我添加
lattice.options( layout.heights=list(bottom.padding=list(x=0), top.padding=list(x=0)), layout.widths=list(left.padding=list(x=0), right.padding=list(x=0)) ),它仍然不起作用
标签: r layout raster gridextra levelplot