【问题标题】:How can I add a subplot within a plot using levelplot in R?如何在 R 中使用 levelplot 在绘图中添加子图?
【发布时间】:2020-03-18 20:14:09
【问题描述】:

我想在我的主关卡中添加一个子图,类似于this image。我想要两张地图的纬度/经度轴,但我还没有设法找到一种方法来使用 levelplot 做到这一点。另外,我见过this question,但没有答案。 我对 subplot 和新的 par() 感到很困惑,所以我真的需要一些帮助。

library("raster")
library ("rasterVis")
library("viridis")

r <- raster(system.file("external/test.grd", package="raster"))#subplot
r2<-r/2 #main plot
ckey <- list(labels=list(cex=1.5), height=1,space='top')
levelplot(r2,colorkey=ckey,margin=FALSE,xlab="", ylab="",col.regions=viridis,at=seq(100,500, len=20),
          scales=list(x=list(cex=1.5),y=list(cex=1.5))) #from this point, I do not know how to add a subplot

【问题讨论】:

    标签: r raster subplot gridextra levelplot


    【解决方案1】:

    gridExtra 包中的grid.arrange 可以为您做到这一点

    library(raster)
    library(rasterVis)
    library(viridis)
    library(gridExtra)
    
    r <- raster(system.file("external/test.grd", package = "raster")) # subplot
    r2 <- r / 2 # main plot
    ckey <- list(labels = list(cex = 1.5), height = 1, space = "top")
    
    lv1 <- levelplot(r2,
      colorkey = ckey, margin = FALSE, xlab = "", ylab = "", col.regions = viridis, at = seq(100, 500, len = 20),
      scales = list(x = list(cex = 1.5), y = list(cex = 1.5))) # from this point, I do not know how to add a subplot
    
    lv2 <- levelplot(r2,
      colorkey = ckey, margin = FALSE, xlab = "", ylab = "", col.regions = viridis, at = seq(100, 500, len = 20),
      scales = list(x = list(cex = 1.5), y = list(cex = 1.5)))
    
    lay <- rbind(
      c(1, 1, NA, NA, NA),
      c(1, 1, 2, 2, 2),
      c(NA, NA, 2, 2, 2),
      c(NA, NA, 2, 2, 2)
    )
    
    grid.arrange(lv1, lv2, layout_matrix = lay,
                 top = "Figure 1.", 
                 bottom = "bottom\nlabel")
    

    reprex package (v0.3.0) 于 2019 年 11 月 22 日创建

    【讨论】:

    • 谢谢@Tung,我从没想过这样使用grid.arrange。你能解释一下外行是如何在这里工作的吗?
    • 想象一个国际象棋游戏。表格(布局)上的数字显示了每个玩家(情节#)的位置。 NA 表示空白/可用空间。
    猜你喜欢
    • 1970-01-01
    • 2020-05-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-12-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多