将ggplot对象列表循环到模态窗口中

时间:2017-06-11 21:16:23

标签: r shinydashboard

在我的shinydashboard中,我希望我的模态窗口显示49 ggplots,它们都存储在列表temp1中。我可以得到模态窗口来显示任何这样的图:

observeEvent(input$modalTrigger1,
  {
    temp1 <- plotList(data)
     showModal(modalDialog(plotOutput("trigger1plot1")))

     output$trigger1plot1 <- renderPlot(temp1[[1]])
  }
  )

但我想创建一个for循环,当按下modalTrigger1(一个动作按钮)时,它会输出模态窗口中的所有49个绘图。到目前为止,我这样做的尝试都失败了,所以我很感激你的帮助。

感谢。

1 个答案:

答案 0 :(得分:0)

考虑gridExtra::grid.arrange组合多个图表,您甚至可以指定 nrow ncol 。请参阅CRAN-R docs

library(gridExtra)
...

observeEvent(input$modalTrigger1,
{
  temp1 <- plotList(data)
  showModal(modalDialog(plotOutput("trigger1plot1")))

  output$trigger1plot1 <- renderPlot({
      do.call(grid.arrange, temp1
      # grid.arrange(grobs = temp1)  -- ALTERNATIVE W/ gridExtra v>=2.0.0

      # do.call(grid.arrange, c(temp1, ncol=7, nrow=7))  -- WITH ROWS/COLS
  })

})