2016-12-29 11 views
2

줄과 산란 및 채우기 영역 변수가있는 R으로 Plotly 그래프를 만들었습니다. X 축은 = "% Y- % m- % d % H : % M : % S"형식으로 as.POSIXCT 형식의 날짜 및 시간입니다. 10 분 간격으로 2 개월간의 데이터가 있습니다. Y 축은 단위 수입니다.Plotly 및 Shiny Dashboard- 플롯 그래프에서 날짜 축의 범위를 변경하려면 daterangeinput을 사용하십시오.

나는 그래프를 Shiny Dashboard에 통합하고있다. daterangeInput을 사용하여 X 축의 날짜 범위를 선택하고 싶습니다. 그래도 daterangeInput을 통합하여 반응 형/대화식으로 통합하는 방법을 알 수는 없습니다.

도움이 될 것입니다. 통합

Plotly 그래프 :

graph <- plot_ly(master, x = date, y = arrival.one, name = 'One Arrival', visible = "legendonly") %>% 
add_trace(x= date, y = arrival.two, name = 'Two Arrival', mode = 'lines', visible = "legendonly") %>% 
layout(xaxis = list(title= "Date and Time", 
     rangeslider = list (type = "date"))) 

UI :

ui <- dashboardPage(skin="black", 
       dashboardHeader(title = "Rack Filling"), 
       dashboardSidebar(sidebarMenu(
        menuItem("Dashboard", tabName = "dashboard", icon =  icon("line-chart")), 
        menuItem("Staffing", tabName = "staffing", icon = icon("male")), 
        dateRangeInput("inDateRange", "Date range input:") 
       )), 

[서버 :

server <- function(input, output) { 
output$graph <- renderPlotly({graph    
}) 
output$event <- renderPrint({ 
?????????? 

답변

1

에서 server 함수를 사용하는 경우 DateRange가 변경 될 때마다 데이터 집합을 필터링하는 반응을 만들어야합니다. 당신은 플롯을 그리기 위해 그 반응을 불러냅니다 :

server <- function(input, output) { 
    reactiveMaster <- reactive({ 
     master %>% filter(date>=input$inDateRange[1] & date<input$inDateRange[2]) 
     }) 

    output$graph <- renderPlotly({ 
     plot_ly(reactiveMaster(), x = date, y = arrival.one, name = 'One Arrival', visible = "legendonly") %>% 
      add_trace(x= date, y = arrival.two, name = 'Two Arrival', mode = 'lines', visible = "legendonly") %>% 
      layout(xaxis = list(title= "Date and Time", 
        rangeslider = list (type = "date"))) 
     }) 
} 
+0

감사합니다! 이것은 나를 더 가깝게 만들지 만 다음과 같은 오류가 발생합니다 : 경고 (eval) (대체 (expr), envir, enclos) : "> ="I의 호환되지 않는 메서드 ("Ops.POSIXt", "Ops.Date") 이것이 posixt 형식화와 관련이 있다고 생각하지만, 나는 다시 포맷을 시도했지만 아무런 운이 없었습니다. – grapher

+0

'filter (as.Date (date)> = 입력 $ inDateRange [1] & as.Date (날짜) <입력 $ inDateRange [2])' – HubertL