geom_rect()
を使用して冬の月を陰にしようとしていて、さまざまな開始点と終了点を持つさまざまな時系列データがあります。時系列ごとに、毎年11月から3月の期間を日陰にしたい(残りの月には色付けをしないでください)。 ( - 毎年のためのマルすなわち11月)ggplotを使用して異なる開始点と終了点を持つ時系列データをプロットするとき
temp <- data.frame(
start = as.Date(c('2016-11-1', '2017-11-01', '2018-11-01', '2019-11-01')),
end = as.Date(c('2017-03-01', '2018-03-01', '2019-03-01', '2020-03-01')))
dateRanges <- data.frame(
start = as.POSIXct(temp [,1], "%Y-%m-%d")+ hours(6),
end = as.POSIXct(temp [,2], "%Y-%m-%d")+ hours(6))
私はスタートした新しいデータフレームのオブジェクトと各シェーディングセクションの終点を定義することができ
library(ggplot2)
library(lubridate)
now <- Sys.time()
set.seed(123)
datOne <- data.frame(IndID = "One",
DateTime = seq(from = now - dyears(0.2), length.out = 50, by = "months"),
Value = rnorm(50))
次の時系列で例えば
、
次にプロットしてください。
ggplot(datOne) +
geom_rect(data = dateRanges, aes(xmin = start , xmax = end, ymin = -Inf, ymax = Inf),
inherit.aes=FALSE, alpha = 0.4, fill = c("lightblue"))+
geom_line(aes(x= DateTime, y = Value), size = 1.5)
これは、単一の時系列のため正常に動作している間、私は別の開始点と終了点を持ち、独自のデータを必要とし、それぞれが、多くの個々の時系列ごとに個別のフィギュアを作っていますフレームからシェーディング領域を作成する。 たとえば、下の図に示すように、異なる時系列に適用された同じdateRanges
データフレームは明らかに機能しません。それぞれについて、私はdateRanges
の作成を自動化するか、すべて一緒に別の方法を使用できますように
datTwo <- data.frame(IndID = "Two",
DateTime = seq(from = now , length.out = 100, by = "months"),
Value = rnorm(100))
ggplot(datTwo) +
geom_rect(data = dateRanges, aes(xmin = start , xmax = end, ymin = -Inf, ymax = Inf),
inherit.aes=FALSE, alpha = 0.4, fill = c("lightblue"))+
geom_line(aes(x= DateTime, y = Value), size = 1.5)
は(すなわち、注釈を付け...)2つの時系列日陰に異なる方法があります。異なる言い方をすると、異なる期間に100種類の異なる時系列を持つ100種類の異なる数字を作成する必要があることを考えると、11月〜3月の期間を日陰にする最良の方法は何ですか?
ありがとうございます。