2015-10-24 2 views
1

Я черчение временной ряд для трех лет 2013, 2014, 2015Изменения цвета фона панель на основе года в ggplot R

require(quantmod) 
require(ggplot2) 
getSymbols("AAPL", from='2013-01-1') 
aapl.df = data.frame(date=time(AAPL), coredata(AAPL.Close)) 
ggplot(data=aapl.df, aes(x=date, y=AAPL.Close, group=1))+geom_line() 

Как построить цены закрытия в ggplot таким образом, что каждый год имеет разные фоновые цветные плитки на сюжете?

+0

Есть ли причина для разделения фона по цвету? Почему бы вам не сделать цветовой код самого сюжетного плана? –

+0

Я мог бы также использовать: 'p + geom_vline (xintercept = as.numeric (c (df $ date [50], df $ date [75], df $ date [100]))' поставить вертикальные линии, где я хочу их но я хотел бы понять это как еще один вариант – Rhodo

ответ

1

Мы можем использовать geom_rect для разделения фона.

ggplot()+ 
    geom_rect(aes(xmin = as.Date("2015-01-01"), 
      xmax = as.Date("2015-12-31"), 
       ymin = -Inf, ymax = Inf, fill = '2015'), alpha = .2)+ 
    geom_rect(aes(xmin = as.Date("2014-01-01"), 
      xmax = as.Date("2014-12-31"), 
       ymin = -Inf, ymax = Inf, fill = '2014'), alpha = .2)+ 
    geom_rect(aes(xmin = as.Date("2013-01-01"), 
      xmax = as.Date("2013-12-31"), 
       ymin = -Inf, ymax = Inf,fill = '2013'), alpha = .2)+ 
    geom_line(data=subset(aapl.df, date < '2016-01-01'), 
      aes(x=date, y=AAPL.Close, group=1))+ 
    scale_fill_brewer(palette = 'Dark2', name = 'Year')+ 
    theme_bw() 

enter image description here

Несколько сообщений были использованы в этом растворе: geom_rect and alpha и using geom_rect to add recessions.

Смежные вопросы