I\'m trying to plot the same histogram in two separate tab panels within a tabBox in shiny. I can plot the data in one of the tabs, but then when I add the code for the other it
BigDataScientist's answer is great and very scalable.
But for situations where you only have one or two outputs that you want to repeat, I think the easiest and most readable solution is to assign them all to the same render function. For example, this would be:
output$plot1 <- output$plot2 <- renderPlot({ hist(mtcars$mpg) })
Here's the full working app using this solution:
library(shiny)
body <- dashboardBody(
fluidRow(
tabBox(title = "miles per gallon", id = "tabset1", height = "250px",
tabPanel("Tab1", plotOutput("plot1")),
tabPanel("Tab2", plotOutput("plot2"), "test")
)
)
)
shinyApp(
ui = dashboardPage(
dashboardHeader(title = "Test"),
dashboardSidebar(),
body
),
server = function(input, output) {
output$plot1 <- output$plot2 <- renderPlot({ hist(mtcars$mpg) })
}
)