Я работаю с некоторыми данными временных рядов и хотел бы выделять область диаграммы всякий раз, когда выполняются определенные условия. Например:
require(ggplot2)
require(quantmod)
initDate <- "1993-01-31"
endDate <- "2012-08-10"
symbols <- c("SPY")
getSymbols(symbols, from=initDate, to=endDate, index.class=c("POSIXt","POSIXct"))
spy<-SPY$SPY.Adjusted
spy$sma<-SMA(spy$SPY.Adjusted,200)
spy<-spy[-(1:199),]
spy<-as.data.frame(spy)
ggplot(spy,aes(x=index(spy),y=spy$SPY.Adjusted))+geom_line()+geom_line(aes(x=index(spy),y=spy$sma))
Приведенный выше код отображает данные, но как я могу выделить раздел, когда когда-либо закрытие выше sma? Этот вопрос аналогичен Как выделить временные диапазоны на графике?, но тогда это вручную. Есть ли функция в ggplot2 для условного построения?
geom_shade_the_region_that_I_have_in_mind_you_know_that_one()
. Вы должны на самом деле сказать, какую область вы хотите затенить. - person joran   schedule 27.08.2012geom_rect
. Но вам все равно придется написать эту функцию самостоятельно, «вручную». - person joran   schedule 27.08.2012