Я пытаюсь заполнить динамически сгенерированные вкладки графиками, сделанными из al oop, но не могу заставить вкладки заполнить все графики, созданные в l oop.
shinyUI(pageWithSidebar(
headerPanel("Dynamic number of plots"),
sidebarPanel(
),
mainPanel(
# This is the dynamic UI for the plots
uiOutput("IndividualPlots")
)
))
server <- function(input, output) {
output$IndividualPlots <- renderUI({
if (is.null(input$data_cqt0)) {
return()
}
plot_content()
shiny:::buildTabset(
id = "t",
lapply(1:PageNumber(), function(i){
plotname <- paste("plot", i, sep="")
tabPanel(title = sprintf("Page_%s",i),
#browser(),
plotOutput(plotname,width = "800px", height = "600px")
)
}),
paste0("nav nav-","tabs")) %>% (function(x){
tags$div(class = "tabbable", x[[1]], x[[2]])
})
})
plot_content<- reactive({
for (i in 1:PageNumber()) {
local({
my_i <- i
plotname <- paste("plot", my_i, sep="")
output[[plotname]] <- renderPlot({
print(Plots()[[i]])
})
})
}
})
PageNumber <- reactive({
data <- data()
return(PlotPageNumber(data, input$Class)) ## Returns number of plots
})
Plots <- reactive({
data <- data()
return(PlotFunction(data, input$Class)) ## Returns plots in list
})
}
Этот код почти работает, но он заполняет обе вкладки последним графиком в индексе plot_content()
. Я застрял в том, как получить все графики из plot_content()
, чтобы динамически заполнить соответствующее количество созданных вкладок.