在显示shiny
和彩色线条时,我遇到有关chart_Series
和滑块使用的问题。当我从右侧使用滑块时,颜色被适当选择(主要是红点)。当我使用左侧的滑块(例如,查看最新数据)时,未正确选择颜色(应为绿色)。我寻求帮助,我感谢任何建议!
require(quantmod)
require(shiny)
getSymbols("YHOO")
data <- YHOO
data <- data[1:100,]
col_function <- rep("red",50)
col_function <- c(col_function, rep("green",50))
plot <- {
date_range <- index(data)
if (interactive()) {
options(device.ask.default = FALSE)
# Define UI
ui <- fluidPage(
titlePanel("Time:"),
sidebarLayout(
# Sidebar with a slider input
wellPanel(
tags$style(type="text/css", '#leftSlide { width:200px; float:left;}'),
id = "leftSlide",
sliderInput("Range", "Choose Date Range:",
min = first(date_range), max = last(date_range), value = c(first(date_range),last(date_range)))
),
mainPanel(
plotOutput("Plot", width = "150%", height = "500px")
)
)
)
# Server logic
server <- function(input, output) {
output$range <- renderPrint({ input$slider2 })
output$Plot <- renderPlot({
x_ti2 <- xts(rep(1, NROW(data)), order.by = index(data))
x_ti2[1, ] <- 0.5
chart_Series(data)
add_TA(x_ti2, col = col_function, pch = 9, type = 'p', cex = .7)
# Another way below, but the color function is still not working
#chart_Series(data["2017"], TA = 'add_TA(x_ti, col = col_function, pch = 15, type = "p", cex = .7); add_TA(x_ti2, col = "orange", pch = 9, type = "p", cex = .7)')
zoom_Chart(paste(input$Range, collapse = "::"))
})
observe({
print(input$Range)
})
}
shinyApp(ui, server)
}
}
plot
答案 0 :(得分:0)
所以,我找到了解决我自己问题的方法:
据我所知,shiny
将编辑数据,但不会编辑着色向量(在各自非常合乎逻辑的......中)。因此,您还必须告诉闪亮以更新着色范围。
首先,我将着色结果转换为xps对象。然后我将x_ti2变量添加到原始数据矩阵,并为col_function定义了一个带有输入$ range的变量。变量需要部分全局环境(闪亮可以使用它)。如果有人有类似的问题,我希望这会解决一些问题。