shinyWidgets `noUiSliderInput()`中的`range`和`pips`参数是如何工作的?

deyfvvtc  于 2023-04-18  发布在  其他
关注(0)|答案(1)|浏览(87)

range和pipshinyWidgets::noUiSliderInput()参数的文档只是声明它们是一个列表,但没有提供列表的结构或内容的任何示例。 我已经查看了refreshless.com关于noUiSlider的文档,使用range`制作非线性滑块(https://refreshless.com/nouislider/examples/#section-nonlinear),但是匹配该结构会产生一个空白的ui,并且不会导致任何错误。
下面是我在R Shiny中尝试的。注意,如果range参数被注解掉,它会在UI中产生一个滑块:

library(shiny)
library(shinyWidgets)

if(interactive()) {
    ui <- fluidPage(
    
    tags$br(),
    
    noUiSliderInput(
      inputId = "noui2", 
      label = "Slider vertical:",
      min = 20, 
      max = 400000,
      #step = 50,
      value = c(100),
      orientation = "vertical",
      range = list("min" = 0,
                   "x20" = c(20, 5),
                   "x100" = c(100, 20),
                   "x250" = c(250, 50),
                   "x500" = c(500, 100),
                   "x5000" = c(5000, 1000),
                   "x20000" = c(20000, 20000),
                   "max" = 400000),
      width = "100px", height = "300px"
    ),
    verbatimTextOutput(outputId = "res2")
    
  )
    
  server <- function(input, output, session) {
    
    output$res2 <- renderPrint(input$noui2)
    
  }
  
  shinyApp(ui, server)

}
g6ll5ycj

g6ll5ycj1#

range选项的密钥必须以%形式给出,例如

range = list("min" = list(0),
                   "20%" = list(20, 5),
                   "80%" = list(100, 50),
                   "max" = list(400))

什么是x20x100等?您想要自定义刻度标签吗?您可以执行以下操作:

pips = list(
        mode = "values",
        values = list(0, 200, 400),
        density = 4
      )

相关问题