R反应直方图

时间:2016-05-24 17:42:39

标签: r shiny

我正在学习Shiny的{​​{1}}界面并完成第一个示例。

直方图根据滑块输入而变化。当滑块移动时,如何让它连续更新?现在,它仅在滑块停止移动时更新。

ui.R

R

server.R

library(shiny)

# Define UI for application that draws a histogram
shinyUI(fluidPage(

  # Application title
  titlePanel("Hello Shiny!"),

  # Sidebar with a slider input for the number of bins
  sidebarLayout(
    sidebarPanel(
      sliderInput("bins",
                  "Number of bins:",
                  min = 1,
                  max = 50,
                  value = 30)
    ),

    # Show a plot of the generated distribution
    mainPanel(
      plotOutput("distPlot")
    )
  )
))

我尝试过:

library(shiny)

# Define server logic required to draw a histogram
shinyServer(function(input, output) {

  # Expression that generates a histogram. The expression is
  # wrapped in a call to renderPlot to indicate that:
  #
  #  1) It is "reactive" and therefore should re-execute automatically
  #     when inputs change
  #  2) Its output type is a plot

  output$distPlot <- renderPlot({
    x    <- faithful[, 2]  # Old Faithful Geyser data
    bins <- seq(min(x), max(x), length.out = input$bins + 1)

    # draw the histogram with the specified number of bins
    hist(x, breaks = bins, col = 'darkgray', border = 'white')
  })
})

有没有办法让它更快/更实时地做出反应?

1 个答案:

答案 0 :(得分:2)

感谢Dean的回复,我调查了github中的shinyCustom包。

这是我的解决方案:

#Shiny UI
library(shiny)
library(shinyCustom)

# Define UI for application that draws a histogram
shinyUI(fluidPage(

  # Application title
  titlePanel("Hello Shiny!"),

  # Sidebar with a slider input for the number of bins
  sidebarLayout(
    sidebarPanel(
      useShinyCustom(slider_delay = "0"), #make a call to shinyCustom, where there is no delay
      customSliderInput("bins", #Use customSliderInput instead of sliderInput
                  "Number of bins:",
                  min = 1,
                  max = 50,
                  value = 30)
    ),

    # Show a plot of the generated distribution
    mainPanel(
      plotOutput("distPlot")
    )
  )
))

应用程序现在会在您移动滑块时更新