sliderInput
和范围sliderInput
。
# ui
shinyUI(fluidPage(
fluidRow(
column(4,
# Copy the line below to make a slider bar
sliderInput("slider1", label = h3("Slider"), min = 0,
max = 100, value = 50)
),
column(4,
# Copy the line below to make a slider range
sliderInput("slider2", label = h3("Slider Range"), min = 0,
max = 100, value = c(40, 60))
)
),
hr(),
fluidRow(
column(4, verbatimTextOutput("value")),
column(4, verbatimTextOutput("range"))
)
))
但是,我想要一个在一个滑块上具有多个范围的
sliderInput
。这是一种在一个滑块上独立选择三个或更多值的能力。我最初设置 value = c(40, 60, 80)
的想法没有奏效:80
被忽略了。我知道此功能可能无法实现。
目前闪亮的 sliderInput 正在闪亮的 jQuery Ion.RangeSlider 中实现(http://ionden.com/a/plugins/ion.rangeSlider/en.html),正如您可以从 sliderInput 函数定义中看到的(https: //github.com/rstudio/shiny/blob/master/R/input-slider.R)。
通过构造 Ion.RangeSlider 最多有两个手柄(默认范围选择)。
已要求实现任意数量的句柄,由其负责开发该插件(IonDen)。不幸的是他拒绝了这个请求。
唯一的出路似乎是基于其他 jquery 滑块构建自己的 htmlwidget。
作为替代方案,可以通过 shinyWidgets::noUiSliderInput()
完成library(shiny)
library(shinyWidgets)
ui <- fluidPage(
noUiSliderInput(
inputId = "myNoUiSlider",
label = "Select:",
min = 0,
max = 100,
value = c(40, 60, 80),
tooltips = TRUE,
step = 1,
color = "#0000FF"
),
textOutput("selection")
)
server <- function(input, output, session) {
output$selection <- renderText({paste("Selected:", paste(input$myNoUiSlider, collapse = ", "))})
}
shinyApp(ui, server)
(基于noUiSlider,它还允许滑块有多种颜色)