网格中的多个传单

Joh*_*ith 6 r ggplot2 leaflet r-grid

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

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

我将不胜感激!

ber*_*ant 7

传单(或任何其他 htmlwidget)可以与htmltools::tagList.

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

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)
      )
    )
  )
Run Code Online (Sandbox Code Playgroud)

您可以leaflet_grid直接放入knitr 块或使用

browsable(leaflet_grid)
Run Code Online (Sandbox Code Playgroud)

从控制台渲染它。

使用 Shiny 流体页面布局

具有闪亮流体页面布局功能的示例:

library(shiny)

leaflet_grid_2 <- fluidPage(
  fluidRow(
    column(6, A), column(6, B) 
  ),
  fluidRow(
    column(6, C), column(6, D) 
  )
)
Run Code Online (Sandbox Code Playgroud)

使用地图视图

library(mapview)
Run Code Online (Sandbox Code Playgroud)

要在所有面板上同步缩放,请使用sync

sync(A, B, C, D)
Run Code Online (Sandbox Code Playgroud)

并且latticeView会在不同步的情况下创建面板

latticeView(A, B, C, D)
Run Code Online (Sandbox Code Playgroud)

(见https://r-spatial.github.io/mapview/articles/articles/mapview_05-extras.html