【发布时间】:2015-01-31 15:58:25
【问题描述】:
我有日期向量,可以从下拉框中选择可以选择多个日期。通过选择这些日期,事件行将出现在已选择的日期。但是我看到 dyEvent 没有采用日期向量。当 dyEvent 中的日期被向量替换时,事件行不会出现。我提供了下面的代码。任何帮助将不胜感激。
ui.R
library(shiny)
library(dygraphs)
shinyUI(fluidPage(
titlePanel("Tool"),
sidebarLayout(
sidebarPanel(
uiOutput("choosedates")
),
mainPanel(
dygraphOutput("plot")
)
)
))
server.R
library(shiny)
library(dygraphs)
shinyServer(function(input, output) {
Data<-data.frame(Time=seq(as.Date("7/29/2012","%m/%d/%Y"),as.Date("8/7/2012","%m/%d/%Y"),by="1 day"),Volume=c(100,150,120,300,250,50,100,120,80,100))
output$choosedates<-renderUI({
selectInput("dates","Choose dates to be marked by event line",as.character(Data$Time),multiple=TRUE)
})
library(xts)
Dataxts<-reactive({
xts(Data$Volume,order.by=as.Date(Data$Time,"%m/%d/%Y"))
})
output$plot<-renderDygraph({
dygraph(Dataxts(), main = "Visualization")%>%
dyEvent(date =as.character(input$dates), "Dummy", labelLoc = "bottom",color = "red", strokePattern = "dashed")%>%
dyAxis("y", label = "Units sold in millions")%>%
dyOptions(axisLabelColor = "Black",digitsAfterDecimal = 2,drawGrid = FALSE)
})
})
【问题讨论】:
-
看起来问题在于您仍然在
for循环的主体中时尝试将dyEvent(...)的结果转发。如果您提供足够的额外代码和数据来运行您的应用程序,那么帮助您会容易得多。 -
@nrussell 我稍微修改了我的方法并上传了类似的代码。
-
我认为这是一种更好的方式,至少更短:stackoverflow.com/a/32837723/6253668