如何将多个图并排放在一个选项卡面板中,其他输出存在,​​闪亮的r?

时间:2018-02-13 22:09:17

标签: r shiny

此问题是对How can put multiple plots side-by-side in shiny r?R Shiny layout - side by side chart and/or table within a tab的跟进。

除了我要并排嵌入的两个图之外还有其他输出时,是否可以在标签面板中嵌入两个并排图?我已经尝试了前两个问题的答案中提供的每一个建议,但没有任何效果。无论我尝试什么,我最终都会破坏我的程序,所以它拒绝显示任何输出。

mainPanel(
width = 10,
tabsetPanel(
  tabPanel("Dashboard", textOutput("text30"), textOutput("text31"), textOutput("text28"), textOutput("text29"), 
           column(6, plotOutput("plot1st"), column(6, plotOutput("plot2nd")), #what do I put here to make this work?
plotOutput("plot3rd"), plotOutput("plot9th"), plotOutput("plot4th"), plotOutput("plot8th"), plotOutput("plot7th"), plotOutput("plot6th")),
  tabPanel("Graph Switcher", plotOutput("selected_graph"))
))))

我能做些什么让这项工作成功吗?

更新:感谢Florian的回答,我能够让应用程序看起来像我想要的那样。但是,如下面的屏幕截图所示,图表之间会出现一个小数字12,并且图表不是完全水平对齐的。我想知道是否有可能解决这个问题?

enter image description here

1 个答案:

答案 0 :(得分:1)

您可以将多个column元素放在一个fluidRow中:

enter image description here

希望这有帮助!

library(shiny)

ui <- fluidPage(
  tabsetPanel(
    tabPanel("Dashboard",
             fluidRow(12,
                      column(6,plotOutput('plot1')),
                      column(6,plotOutput('plot2'))
                      ),
             fluidRow(12,
                      column(4,plotOutput('plot3')),
                      column(4,plotOutput('plot4')),
                      column(4,plotOutput('plot5'))
                       ),
             fluidRow(12,
                      column(3,plotOutput('plot6')),
                      column(3,plotOutput('plot7')),
                      column(3,plotOutput('plot8')),
                      column(3,plotOutput('plot9'))

             )
    )))

server <- function(input,output)
{

  lapply(seq(10),function(x)
    {
    output[[paste0('plot',x)]] = renderPlot({hist(runif(1:20))})
  })
}

shinyApp(ui,server)