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)