Reputation: 539
In the following toy example I have a lot of sliders in the sidebar. For the last ones I cannot see the plot in right anymore. Is there any solution to this problem that doesn't involve deleting sliders?
# 01-kmeans-app
palette(c("#E41A1C", "#377EB8", "#4DAF4A", "#984EA3",
"#FF7F00", "#FFFF33", "#A65628", "#F781BF", "#999999"))
library(shiny)
ui <- fluidPage(
headerPanel('Iris k-means clustering'),
sidebarPanel(
selectInput('xcol', 'X Variable', names(iris)),
selectInput('xcol', 'X Variable', names(iris)),
selectInput('xcol', 'X Variable', names(iris)),
selectInput('xcol', 'X Variable', names(iris)),
selectInput('xcol', 'X Variable', names(iris)),
selectInput('xcol', 'X Variable', names(iris)),
selectInput('xcol', 'X Variable', names(iris)),
selectInput('xcol', 'X Variable', names(iris)),
selectInput('xcol', 'X Variable', names(iris)),
selectInput('xcol', 'X Variable', names(iris)),
selectInput('ycol', 'Y Variable', names(iris),
selected = names(iris)[[2]]),
numericInput('clusters', 'Cluster count', 3,
min = 1, max = 9)
),
mainPanel(
plotOutput('plot1')
)
)
server <- function(input, output) {
selectedData <- reactive({
iris[, c(input$xcol, input$ycol)]
})
clusters <- reactive({
kmeans(selectedData(), input$clusters)
})
output$plot1 <- renderPlot({
par(mar = c(5.1, 4.1, 0, 1))
plot(selectedData(),
col = clusters()$cluster,
pch = 20, cex = 3)
points(clusters()$centers, pch = 4, cex = 4, lwd = 4)
})
}
shinyApp(ui = ui, server = server)
Upvotes: 4
Views: 1815
Reputation: 9836
you could try to add a scroll down bar to the sidePanel
thanks to R shiny scroll wellPanel
# 01-kmeans-app
palette(c("#E41A1C", "#377EB8", "#4DAF4A", "#984EA3",
"#FF7F00", "#FFFF33", "#A65628", "#F781BF", "#999999"))
library(shiny)
ui <- fluidPage(
headerPanel('Iris k-means clustering'),
sidebarPanel(id = "tPanel",style = "overflow-y:scroll; max-height: 600px; position:relative;",
selectInput('xcol', 'X Variable', names(iris)),
selectInput('xcol', 'X Variable', names(iris)),
selectInput('xcol', 'X Variable', names(iris)),
selectInput('xcol', 'X Variable', names(iris)),
selectInput('xcol', 'X Variable', names(iris)),
selectInput('xcol', 'X Variable', names(iris)),
selectInput('xcol', 'X Variable', names(iris)),
selectInput('xcol', 'X Variable', names(iris)),
selectInput('xcol', 'X Variable', names(iris)),
selectInput('xcol', 'X Variable', names(iris)),
selectInput('ycol', 'Y Variable', names(iris),
selected = names(iris)[[2]]),
numericInput('clusters', 'Cluster count', 3,
min = 1, max = 9)
),
mainPanel(
plotOutput('plot1')
)
)
server <- function(input, output) {
selectedData <- reactive({
iris[, c(input$xcol, input$ycol)]
})
clusters <- reactive({
kmeans(selectedData(), input$clusters)
})
output$plot1 <- renderPlot({
par(mar = c(5.1, 4.1, 0, 1))
plot(selectedData(),
col = clusters()$cluster,
pch = 20, cex = 3)
points(clusters()$centers, pch = 4, cex = 4, lwd = 4)
})
}
shinyApp(ui = ui, server = server)
Upvotes: 8