I tried with the below to execute my following requirement. It is working perfectly but there is some issues
-
The moment I click on Plot (Under Factor under datasets), the graphs should be displayed (It is working)
-
After the above plot, if I click on filters (under Filter) the single graph is displayed accordingly. lets say when we select "dfg" the single graph is displayed capturing the entire screen. this should not happen. I need it to be displaced with reasonable grid size
df <- structure(list(A = structure(c(1L, 4L, 6L, 1L, 8L, 2L, 7L, 3L, 5L, 5L, 1L, 8L, 2L, 7L, 2L), .Label = c("asd", "dfg", "fgdsgd", "fsd", "gdfgd", "gs", "sdfg", "sf"), class = "factor"), B = c(29L, 24L, 46L, 50L, 43L, 29L, 32L, 24L, 35L, 39L, 33L, 47L, 53L, 26L, 31L), C = structure(c(8L, 5L, 1L, 6L, 3L, 2L, 9L, 7L, 6L, 3L, 2L, 9L, 8L, 8L, 4L), .Label = c("asd", "er", "fg", "gf", "gfd", "gfg", "qw", "sf", "tr"), class = "factor"), D = c(36L, 56L, 39L, 26L, 56L, 35L, 27L, 31L, 33L, 45L, 34L, 27L, 43L, 40L, 56L ), E = structure(c(9L, 4L, 3L, 4L, 2L, 7L, 10L, 8L, 6L, 2L, 1L, 10L, 9L, 9L, 5L), .Label = c("er", "fg", "g", "gd", "gf", "gfg", "gtd", "qw", "sf", "tr"), class = "factor"), F = c(44L, 34L, 37L, 23L, 37L, 51L, 28L, 36L, 33L, 31L, 39L, 43L, 25L, 37L, 43L ), num = 1:15), row.names = c(NA, -15L), class = "data.frame") theNames <- names(df) MyList <- vector(mode = "list") for(i in theNames){ MyList[[i]] <- df[,i] } library(ggplot2) library(dplyr) library(shiny) ui <- fluidPage( tabsetPanel(tabPanel( "Factor_Bivariate_Analysis", sidebarLayout(sidebarPanel( fluidRow( column(h6( selectInput("se4", "Factors under the datasets", choices = c("", "Values")) ), width = 5, offset = 0), br(), column(h6( actionButton("Val", "See the Values", width = 200, offset = -1) ), width = 5, offset = 0), br(), column(h6(selectInput( "state", "Filters", choices = c("",MyList) )), width = 5, offset = 0) ), width = 1000 ), mainPanel( h5(plotOutput( "Plot4", width = "1000px", height = "1000px" ), width = 1000), h5(dataTableOutput("Plot5"), width = 1000) )) ))) server <- function(input, output, session) { f_data <- reactive({ wanted_case <- input$state cat("selected case ", wanted_case, "\n\n") if (wanted_case == ""){ fd <- df } else { fd <- df %>% filter_if(.predicate = is.factor,.vars_predicate = any_vars (. == wanted_case)) print(fd) } return(fd) }) Plot4 <- reactive({ if (input$se4 == "Values") { print(ggplot(data = f_data(),aes(x=num,y=B,fill=A))+geom_line()+facet_wrap("A",ncol=1,nrow=8, scales = "free")) } else if (input$se4 == "NULL") { "" } }) output$Plot4 <- renderPlot({ Plot4() }) } shinyApp(ui, server)