首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >用rasterVis和gridExtra排列奇数的地块

用rasterVis和gridExtra排列奇数的地块
EN

Stack Overflow用户
提问于 2017-06-24 23:11:37
回答 1查看 1.1K关注 0票数 1

我试图用rasterVis包的rasterVis函数和gridExtragrid.arrange绘制一个带有七个栅格的面板。

通过使用以下代码,我几乎可以得到所需的东西:

代码语言:javascript
复制
# 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)

得出这个数字:

然而,我仍有一些需要改进的地方:

  1. 如何减少底部行中图形之间的空白?
  2. 如何添加一个单一的,合并的图例为六个底部光栅,优先放在底部的数字?

使用rasterVisgridExtra可以实现这一点吗?还有其他方法可以使用吗?

EN

回答 1

Stack Overflow用户

发布于 2017-06-25 17:13:55

空白是格距设置的组合,也是具有固定高宽比的图形(除非设备本身具有兼容的纵横比,否则它们不能太近)。

关于图例,您可以使用draw.colorkey(),但是从我可以告诉您的情况来看,需要手动确保颜色匹配,方法是显式地将它们传递给情节和键。

代码语言:javascript
复制
# load required packages
library(rasterVis)
library(gridExtra)

# load sample raster
f <- system.file("external/test.grd", package="raster")
r <- raster(f)

my_theme <- rasterTheme(region = blues9)

# create plots
p1 <- levelplot(r, xlab=NULL, ylab=NULL, margin=FALSE, par.settings = my_theme)
leg <- p1$legend$right$args$key
p1$legend <- list()
p2 <- levelplot(r*2, xlab=NULL, ylab=NULL, margin=FALSE,colorkey=FALSE, par.settings = my_theme)

# put plots in list
p.list <- list(p1,p2,p2,p2,p2,p2,p2)

# create layout
lay <- rbind(c(NA,1,NA),
             c(2,3,4),
             c(5,6,7),
             c(8,8,8))

leg$col <- my_theme$regions$col
legGrob <- draw.colorkey(key = leg, vp = grid::viewport(height=0.5))
# arrange plots
grid.arrange(grobs=c(p.list, list(legGrob)), layout_matrix=lay,
             vp = grid::viewport(width=0.7,height=1))

(不用说,大幅度地调整面似乎是更好的选择)

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/44741768

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档