2015-12-14 77 views
0

在下面的玩具例子中,我在侧边栏中有很多滑块。对于最后一个,我看不到右边的情节了。有没有解决这个问题,不涉及删除滑块?侧边栏太长时闪亮时该怎么办?

# 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) 
+0

我没有看到你的代码中的任何滑块?你的意思是'selectInput's?当我运行你的代码时,我会看到完整的图形和侧栏中的一长串输入。侧边栏与图表重叠吗? – Chris

+0

是的,我认为一个滑块就是调用'selectInput'的东西。如果你仍然可以看到它,那么只需添加更多,直到看不到该图。我的问题是当你达到那一点时要做什么。 –

回答

3

你可以尝试吧侧面板

由于添加向下滚动到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)