Hi all,
Part of my application is to recommend to users a gallery of ML generated plots based on their own data (or example data from R packages). There will be at least 50 plots displayed every time and possibly many more.
My problem is that they're all displayed at one time,making in some cases huge waiting times.
I would like to find a way to have them displayed one by one, as soon as one has been generated.
In the simple example below, instead of all 4 showing plots showing at one time, I'd like to have them shown individually as soon as they're ready.
library(shiny); library(ggplot2)
ui <- fluidPage(
fluidRow(
splitLayout(
style = "height: 160px; text-align:center",
plotOutput("Mosaic_Plot1"), plotOutput("Mosaic_Plot2"), plotOutput("Mosaic_Plot3"), plotOutput("Mosaic_Plot4")
),
splitLayout(
style = "height: 40px; text-align:center",
actionButton("mosEdit1", "Edit this plot"), actionButton("mosEdit2", "Edit this plot"), actionButton("mosEdit3", "Edit this plot"),
actionButton("mosEdit4", "Edit this plot")
)
)
)
server <- function(input, output, session) {
output$Mosaic_Plot1 <- renderPlot({ggplot(data = diamonds, aes(carat, price)) + geom_point()}, width = 280, height = 160)
output$Mosaic_Plot2 <- renderPlot({ggplot(data = diamonds, aes(x = color, y = price, color = color)) + geom_point() + geom_jitter()}, width = 280, height = 160)
output$Mosaic_Plot3 <- renderPlot({ggplot(data = diamonds, aes(carat)) + geom_histogram()}, width = 280, height = 160)
output$Mosaic_Plot4 <- renderPlot({ggplot(data = diamonds, aes(depth, table)) + geom_point()}, width = 280, height = 160)
}
shinyApp(ui, server)
I tried several options with embedded uiOutputs, fillPage, ... but nothing worked so far.
Many thanks for any suggestions on how to make this work.