現在Date
は要因であり、実際の R 日付オブジェクトではありません。文字列をオブジェクトstrptime
に解析するために使用できます。POSIXct
これにより、はるかに優れた結果が得られます。
あなたの質問には直接関係ありませんが、さらにfacet_wrap
、時系列を分割してそれらを積み重ねることができます。に必要なインデックスを計算する小さな関数を作成しましたfacet_wrap
。
createTimeseriesCutupIdx = function(ncuts, nrows, labels) {
if(missing(labels)) labels = LETTERS[1:ncuts]
pointsPerCutup = floor((1/ncuts) * nrows)
idx = rep(labels, each = pointsPerCutup)
if(length(idx) < nrows) {
idx[(length(idx) + 1):nrows] <- idx[length(idx)]
}
return(idx)
}
それを使用する方法の例:
require(ggplot2); theme_set(theme_bw())
tserie_length = 5000
df = data.frame(t = as.POSIXct("2006-01-01") + (1:tserie_length) * 3600,
value = runif(tserie_length))
ggplot(df, aes(x = t, y = value)) + geom_line()

df$idx = createTimeseriesCutupIdx(ncuts = 5, nrows = nrow(df))
ggplot(df, aes(x = t, y = value)) +
geom_line() +
facet_wrap(~ idx, scales = "free_x", ncol = 1)

これにより、より大きな時系列を意味のある方法でプロットできます。