Реактивные цвета в блестящем

#javascript #r #shiny

#javascript #r #блестящий

Вопрос:

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

Ответ №1:

В shinysky пакете есть палитра цветов, которую вы можете использовать с shiny :

 require(shinysky)
require(shiny)

runApp(list(
  ui = bootstrapPage(
    jscolorInput("colorid"), 
    uiOutput('myPanel'),
    plotOutput('plot')
  ),
  server = function(input, output) {
    output$myPanel <- renderUI({
      mystyle <- ifelse(is.null(input$colorid), "ffffff", input$colorid)
      inputPanel(
        numericInput('n', 'Number of obs', 100)
        , style = paste0("background-color:#", mystyle, ";")
      )
    })
    output$plot <- renderPlot({ hist(runif(input$n)) })
  }
))
  

введите описание изображения здесь

В настоящее время его нет в CRAN, поэтому вам нужно будет установить его через devtools подробности на https://github.com/AnalytixWare/ShinySky

Ответ №2:

Для тех, кто приходит сюда в поисках средства выбора цвета, предыдущий ответ с использованием shinysky устарел (средство выбора цвета оттуда было перенесено в пакет, который не обслуживается)

В пакете shinyjs для shiny доступен другой инструмент выбора цвета.

 library(ggplot2)
library(shiny)
library(shinyjs)

runApp(shinyApp(
  ui = fluidPage(
    colourInput("col", "Select colour", "grey"),
    plotOutput("plot")
  ),
  server = function(input, output, session) {
    output$plot <- renderPlot({
      ggplot(cars, aes(speed, dist))  
        geom_point()  
        theme(panel.background = element_rect(fill = input$col))
    })
  }
))
  

введите описание изображения здесь

Отказ от ответственности: Я автор этого пакета.