2014-12-22 7 views
3

dygraphs 패키지의 dygraph 함수를 사용하여 다이 그래프를 플로팅했습니다. 내 데이터가 2014년 12월 17일dygraph 패키지의 dygraph에서 날짜 버그가 발생했습니다 (JavaScript 사용).

> str(seriesXts) 
An ‘xts’ object on 2014-12-10/2014-12-17 containing: 
    Data: num [1:8, 1:30] 0.928 0.977 0.935 0.989 0.854 ... 
- attr(*, "dimnames")=List of 2 
    ..$ : NULL 
    ..$ : chr [1:30] "CiekawostkiFinanse" "CiekawostkiKobieta" "CiekawostkiMototech" "CiekawostkiSport" ... 
    Indexed by objects of class: [POSIXct,POSIXt] TZ: 
    xts Attributes: 
List of 1 
$ descr: chr "my new xts object" 

까지 날짜 2014년 12월 10일 출신이지만 플롯 범례는 말한다에 그들이 일일 그 이전 시작,이 그림을 확인하십시오 를 축에이 날짜 (12)이지만,에 전설 날짜 11 ...

bug

버그가 어떤 생각이?

이 코드를하려고이 버그를 재현 할 수

library(archivist) 
library(dplyr) 
library(devtools) 
devtools::install_github("rstudio/dygraphs") 
library(dygraphs) 
seriesReactive <- loadFromGithubRepo("db914a43536d4d3f00cf3df8bf236b4a", user= "MarcinKosinski", repo="Museum", value = TRUE) 
dygraph(seriesReactive, main = "Dzienna proporcja kliknięć do odsłon dla danych struktur", ylab = "Proporcja") %>% 
    dyRangeSelector() 

나는 또한 rstudio의 GitHub의상의 문제로 게시 한 https://github.com/rstudio/dygraphs/issues/22

+0

이것은 시간대와 관련이 있습니다. – pablosaraiva

+0

해결 방법 :? –

+0

나는 R에 관해 당신을 도울만큼 충분하지 않다. 그래서 나는 단지 대답하는 대신에 논평했다. 시간대와 관련 있는지 확인하고 확인하십시오. 그렇다면 현지 시간대에 상관없이 Date 값을 읽는 방법을 찾으십시오. – pablosaraiva

답변

1

이 문제가 함께뿐만 아니라 것 같습니다, 정직 이상하다 시간대가 있지만 스케일도 있습니다.

이론상 dygraph는 클라이언트 워크 스테이션의 시간대를 사용하므로 this을 확인하십시오. 그러나 내부적으로 시간은 GMT로 유지됩니다 (이 점에 대해서는 확실하지 않지만 그렇게 보입니다) : look : d <- dygraph(seriesReactive, main = "Dzienna proporcja kliknięć do odsłon dla danych struktur", ylab = "Proporcja") %>% dyRangeSelector() d$x$data[[1]] [1] "2014-12-09T23:00:00Z" "2014-12-10T23:00:00Z" "2014-12-11T23:00:00Z" "2014-12-12T23:00:00Z" [5] "2014-12-13T23:00:00Z" "2014-12-14T23:00:00Z" "2014-12-15T23:00:00Z" "2014-12-16T23:00:00Z" CET 시간대에 있으므로 1 시간 차이가 있습니다.

이제 dyGraph에서 내 시간대를 사용하기 때문에 모든 것이 정상적이지만 그렇지 않습니다. 그러나 수동으로 도형의 눈금을 변경하면 d$x$scale <- "hourly" 의도 한대로 작동하기 시작합니다. 어쩌면 추출 일과 관련된 몇 가지 문제가 있을까요?

docs에 따르면 당신은 데이터 indexTZ(seriesReactive) <- "CET" dygraph(seriesReactive, main = "Dzienna proporcja kliknięć do odsłon dla danych struktur", ylab = "Proporcja") %>% dyOptions(useDataTimezone = TRUE) %>% dyRangeSelector() 에서 시간대를 사용하는 옵션을 설정할 수 있지만 (아무것도가 표시되지 않습니다) 나를 위해 작동하지 않습니다. 왜 그런지는 모르겠지만 시간을 들일 필요가 없습니다.

항상 작은 해결 방법을 만들고 xts 개체에서 표준 시간대를 GMT로 설정할 수 있습니다. index(seriesReactive) <- as.POSIXct(format(index(seriesReactive), format="%Y-%m-%d"), tz = "GMT") dygraph(seriesReactive, main = "Dzienna proporcja kliknięć do odsłon dla danych struktur", ylab = "Proporcja") %>% dyRangeSelector()

+0

감사합니다. Bartek :)이 무언가를 보겠습니다. –

+0

tz = "GMT"는 ax의 기본 매개 변수가 아닙니다. .POSIXct? 다른 컴퓨터에서이 코드를 시도했지만 버그가 없었습니다. 시스템 시간대와 DOS 시간대가 어떻게 든 다를 수 있습니다. –