我有4个传单对象:A,B,C,D。我想将它们绘制在2 x 2的网格中,但是我一直很难做到这一点。

我最初的想法是使用ggplot和facet_grid,但是ggplot不知道如何处理类传单的对象。

我将不胜感激!

最佳答案

传单(或任何其他htmlwidgets)可以与htmltools::tagList结合使用。

在这种情况下,一个简单的html table可以处理布局:

library(htmltools)

leaflet_grid <-
  tagList(
    tags$table(width = "100%",
      tags$tr(
        tags$td(A),
        tags$td(B)
      ),
      tags$tr(
        tags$td(C),
        tags$td(D)
      )
    )
  )

您可以直接将leaflet_grid放在knitr块中,也可以使用
browsable(leaflet_grid)

从控制台渲染它。

使用 Shiny 流畅的页面布局

具有光泽的流体页面布局功能的示例:
library(shiny)

leaflet_grid_2 <- fluidPage(
  fluidRow(
    column(6, A), column(6, B)
  ),
  fluidRow(
    column(6, C), column(6, D)
  )
)

使用mapview
library(mapview)

要同步所有面板上的缩放,请使用sync:
sync(A, B, C, D)

并且latticeView将创建面板而不同步
latticeView(A, B, C, D)

(请参阅https://r-spatial.github.io/mapview/articles/articles/mapview_05-extras.html)

关于r - 网格中的多个传单,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/45175040/

10-12 21:32