如何使用PlotOutput与grid.arrange闪亮?

时间:2016-12-11 09:20:22

标签: r ggplot2 shiny reactive-programming

这是我想要使用grid.arrange安排的图表列表。

p <- lapply(1:10, function(i) doPlot(comb_labels[1, i], comb_labels[2, i]))

使用doPlot生成的图表会响应Shiny中刷子和悬停反应变量的变化。

显然,刷子和悬停只能用PlotOutput声明,如:

plotOutput(plotname, height = 280, width = 250, hover = "plot_hover", brush = "plot_brush", click = "plot_click") 

我想在自定义网格中添加这样的图:

grid.arrange(p[[1]], ng, ng, ng,
                     p[[2]], p[[3]], ng, ng,
                     p[[4]], p[[5]], p[[6]] , ng,
                     p[[7]], p[[8]], p[[9]], p[[10]])

这将返回没有任何动态元素的图像。

如何将grid.arrange与PlotOutput集成,还是有其他选择?

我的代码格式如下:https://gist.github.com/wch/5436415

1 个答案:

答案 0 :(得分:0)

保存grid.arrange然后print返回的值:

output$shinyPlotObject <- renderPlot({

   ...
   p = grid.arrange(p[[1]], ng, ng, ng,
                    p[[2]], p[[3]], ng, ng,
                    p[[4]], p[[5]], p[[6]] , ng,
                    p[[7]], p[[8]], p[[9]], p[[10]])

   print(p)
}