R zoomChart闪亮

时间:2017-02-09 08:43:54

标签: r shiny quantmod

我一直在尝试使用User::destroyzoomChart以图标方式交互式放大chartSeries的某些部分,但无法找到正确的解决方案。我会使用shiny或滑块,但我不确定如何将dateRangeInput的zoomChart-option与quantmod相关联。正如您可能已经假设的那样,我相对较新,并且非常感谢您的建议!

编辑:数据采用xts格式。

mycode的:

shiny

1 个答案:

答案 0 :(得分:2)

实际上,你非常接近。请注意dateRangeInput()中的更改:使用start和end参数而不是min,max。然后,您可以使用服务器端的输入来使用zoom-chart

library(quantmod)
library(shiny)
getSymbols("YHOO")
data <- YHOO
date_range <- index(data)
if (interactive()) {
  options(device.ask.default = FALSE)
  ui <- fluidPage(  
    titlePanel("Select Range to zoom-in:"),
    sidebarLayout(
      sidebarPanel(
        dateRangeInput("Range", "Choose Date Range:", start=first(date_range),
                       end=last(date_range), format = "yyyy-mm-dd")
      ),
      mainPanel(
        plotOutput("Plot")
      )
    )
  )
  server <- function(input, output) {
    output$Plot <- renderPlot({
      chartSeries(data, type = c("auto", "candlesticks", "matchsticks",   "bars","line"), 
                  theme=chartTheme("white"), name=paste(start(data), end(data),sep = " ")) 
      zoomChart(paste(input$Range, collapse = "::")) 
    })

    observe({
      print(input$Range)
    })
  }
  shinyApp(ui, server)
}

正如@drmariod所说,拥有一个完全可重复的例子是很有益的,在这种情况下很容易通过getSymbols()得到。