Установка минимального диапазона в блестящем слайдере приложений - PullRequest
0 голосов
/ 07 сентября 2018

При использовании ползунка диапазона в блестящем приложении может ли потребоваться минимальный диапазон выбранных значений? Я использую функцию sliderTextInput () в пакетеinyWidgets, но думаю, что это обычная функция для диапазона ползунков. Пример кода игрушки:

testx=1:150
testy=1:150

library(shiny) # also requires shinyWidgets package be installed
ui <- fluidPage(

  plotOutput("plot"),
  shinyWidgets::sliderTextInput("range","Input Size:",
                                choices=c(1,25,50,100),
                                selected=c(25,50), grid = T)
)
server <- function(input, output) {
  output$plot <- renderPlot({
  plot(testx[input$range[1]:input$range[2]],testy[input$range[1]:input$range[2]],
             xlim=c(0,150),ylim=c(0,150))
      })
}
shinyApp(ui, server) 

Проблема, которую я пытаюсь избежать, - это проблема ниже, где оба конца ползунка установлены на одно и то же значение, что приводит к построению одной точки - я бы хотел, чтобы диапазон был выбран.

enter image description here

1 Ответ

0 голосов
/ 07 сентября 2018

Вы можете обновить значения, если они совпадают:

testx=1:150
testy=1:150

library(shiny) # also requires shinyWidgets package be installed
library(shinyWidgets)

ui <- fluidPage(
  plotOutput("plot"),
  sliderTextInput("range","Input Size:",choices=sliderchoice,selected=c(25,50), grid = T)
)
server <- function(input, output,session) {

  observeEvent(input$range,{
    if(input$range[1] == input$range[2]){
      updateSliderTextInput(session,"range",selected = c((input$range[1]-1),input$range[2]))
    }
  })
  output$plot <- renderPlot({
    plot(testx[input$range[1]:input$range[2]],testy[input$range[1]:input$range[2]],
         xlim=c(0,150),ylim=c(0,150))
  })
}
shinyApp(ui, server) 

enter image description here

...