Pracuję z pewnymi danymi szeregów czasowych i chcę podkreślić obszar wykresu, gdy tylko zostaną spełnione określone warunki. Na przykład:ggplot2: wyróżnij obszar wykresu
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))
Powyższy kod kreśli dane, ale jak mogę podświetlić sekcję, kiedy jest blisko jest powyżej sma? To pytanie jest podobne do How to highlight time ranges on a plot?, ale jest to ręczne. Czy w ggplot2 istnieje funkcja do drukowania warunkowego?
Pytanie link do _jest_ drogę do Zrób to. ** ggplot2 ** nie ma jeszcze funkcji umożliwiającej zrozumienie czegoś takiego jak 'geom_shade_the_region_that_I_have_in_mind_you_know_that_one()'. Musisz powiedzieć, jaki region chcesz zacieniony. – joran
Zwiększysz swoje szanse na to, że ci, którzy nie będą kwantami, będą eksperymentować z twoim kodem, jeśli umieścisz odpowiednie wywołania biblioteki, aby wskazać, które pakiety są potrzebne do uruchomienia tego kodu. –
@joran dzięki za wnikliwą odpowiedź ~ będzie ciężko pracować, aby wymyślić coś pożytecznego. – user1234440