Shiny: Возможно ли сделать вертикальный слайдер?

Есть ли возможность сделать вертикальный слайдер в Shiny? Мне бы хотелось, чтобы график, вертикальный ползунок слева и нормальный горизонтальный ползунок под ним.

7 голосов | спросил meow 10 FebruaryEurope/MoscowbTue, 10 Feb 2015 19:34:27 +0300000000pmTue, 10 Feb 2015 19:34:27 +030015 2015, 19:34:27

2 ответа


0

Есть способы сделать это вручную. Вам необходимо создать пользовательский js.

Вот сумасшедшее приложение, в котором все вращается

    #Libs
    require(c('shiny'))
    js<-"$(function() {
        var $elie = $('div');
        rotate(25);
        function rotate(degree) {        
            $elie.css({ WebkitTransform: 'rotate(' + degree + 'deg)'});  
            $elie.css({ '-moz-transform': 'rotate(' + degree + 'deg)'});
            timer = setTimeout(function() {
                rotate(++degree);
            },100);
        }
    });"


    renderInputs <- function(prefix) {
      wellPanel(
        fluidRow(
          column(3,
                 sliderInput(paste0(prefix, "_", "n_obs"), "View a specific date", min = as.Date('1980-05-15'), max = Sys.Date(), value = as.Date('2000-01-01'),
                 #sliderInput("date_range", "Choose Date Range:", min = as.Date("2016-02-01"), max = Sys.Date(), value = c(as.Date("2016-02-25"), Sys.Date())
                 ),
                 verbatimTextOutput("info")
          ),
          column(9,
                 plotOutput("plot1",
                            click = "plot_click",
                            dblclick = "plot_dblclick",
                            hover = "plot_hover",
                            brush = "plot_brush")
          )
        )
      )
    }

    ui <- shinyUI(fluidPage(theme="simplex.min.css",
                            tags$style(type="text/css",
                                       "label {font-size: 12px;}",
                                       ".recalculating {opacity: 1.0;}"
                            ),
                            tags$head(
                              tags$style(HTML("
                                              @import url('//fonts.googleapis.com/css?family=Lobster|Cabin:400,700');

                                              h1 {
                                              font-family: 'Lobster', cursive;
                                              font-weight: 500;
                                              line-height: 1.1;
                                              color: #48ca3b;
                                              }

                                              ")),
                              tags$script(HTML(js))
                              ),

                            # Application title
                            tags$h2("Google!!!"),
                            p("An adaptation of the",
                              tags$a(href="https://google.com", "Google"),
                              "from",
                              tags$a(href="https://duckduckgo.com/", "DuckDuckGo"),
                              "to get the best possible results without selling yourself"),
                            hr(),

                            fluidRow(
                              column(6, tags$h3("Scenario A")),
                              column(6, tags$h3("Scenario B"))
                            ),
                            fluidRow(
                              column(12, renderInputs("a"))
                            ),
                            fluidRow(
                              column(6,
                                     plotOutput("a_distPlot", height = "600px")
                              ),
                              column(6,
                                     plotOutput("b_distPlot", height = "600px")
                              )
                            )
                              )
                  )


    server <- function(input, output) {
      output$plot1 <- renderPlot({
        plot(mtcars$wt, mtcars$mpg)
      })

      output$info <- renderText({
        xy_str <- function(e) {
          if(is.null(e)) return("NULL\n")
          paste0("x=", round(e$x, 1), " y=", round(e$y, 1), "\n")
        }
        xy_range_str <- function(e) {
          if(is.null(e)) return("NULL\n")
          paste0("xmin=", round(e$xmin, 1), " xmax=", round(e$xmax, 1), 
                 " ymin=", round(e$ymin, 1), " ymax=", round(e$ymax, 1))
        }

        paste0(
          "click: ", xy_str(input$plot_click),
          "dblclick: ", xy_str(input$plot_dblclick),
          "hover: ", xy_str(input$plot_hover),
          "brush: ", xy_range_str(input$plot_brush)
        )
      })
    }

    shinyApp(ui, server)


    ################################

Если вы хотите, чтобы он работал, поверните только один элемент, вам нужно изменить js следующим образом:

    js<-"$(function() {
      var $elie = $(document.getElementsByClassName('form-group shiny-input-container'));
    rotate(270);
    function rotate(degree) {        
        $elie.css({ WebkitTransform: 'rotate(' + degree + 'deg)'});  
        $elie.css({ '-moz-transform': 'rotate(' + degree + 'deg)'});
    }
});"

Еще нужно немного поработать, чтобы исправить такие функциональные возможности, как скольжение и заполнение элемента div и добавление пользовательского идентификатора для всех элементов, которые вы хотите повернуть: тем самым убедитесь, что вы не примените js к элементу, который вы не делаете Я хочу получить беспорядок из первого примера, но это должно стать хорошей отправной точкой.

ответил Stanislav 15 Maypm16 2016, 18:54:37
0

Я тоже ее искал и думаю, что она не реализована. В блестящей дискуссионной группе есть аналогичный вопрос с ноября 2014 года, и он все еще открыт.

https://groups.google.com/forum/#! Searchin /блестящий-обсуждения /вертикальный $ 20slider

Просматривая официальную галерею и в Интернете, я не смог найти ни одного примера. Все ползунки горизонтальные. Всегда.

ответил Ze Grisi 20 FebruaryEurope/MoscowbFri, 20 Feb 2015 20:59:34 +0300000000pmFri, 20 Feb 2015 20:59:34 +030015 2015, 20:59:34

Похожие вопросы

Популярные теги

security × 330linux × 316macos × 2827 × 268performance × 244command-line × 241sql-server × 235joomla-3.x × 222java × 189c++ × 186windows × 180cisco × 168bash × 158c# × 142gmail × 139arduino-uno × 139javascript × 134ssh × 133seo × 132mysql × 132