我一直在尝试使用User::destroy
和zoomChart
以图标方式交互式放大chartSeries的某些部分,但无法找到正确的解决方案。我会使用shiny
或滑块,但我不确定如何将dateRangeInput
的zoomChart-option与quantmod
相关联。正如您可能已经假设的那样,我相对较新,并且非常感谢您的建议!
编辑:数据采用xts格式。
mycode的:
shiny
答案 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()
得到。