R ggplot,绘制多个区域,每个区域都有多种填充颜色

时间:2017-06-26 11:31:56

标签: r ggplot2

我想要查看有效数据的历史记录

mkts = c('GOLD','SILVER')
dt = CJ(date = seq(as.Date('2000-01-01'), as.Date('2020-01-01'), by = 1), market = mkts)
dt[market == 'GOLD', hasValidData := (date > '2005-01-01') & (date < '2018-01-01')]
dt[market == 'SILVER', hasValidData := (date > '2010-01-01') & (date < '2018-01-01')]

因此,GOLD拥有2005年至2017年的有效数据,而SILVER拥有2010-2017的有效数据。

我想为每个市场绘制整个x轴上的水平区域(色带?),如果有有效数据则填充一种颜色,如果没有则填充另一种颜色。

这就是我试过的

dt[, yorder := match(market, mkts)]
ggplot(dt) + geom_ribbon(aes(x = date, ymin = yorder, ymax = yorder+1, fill = hasValidData), alpha = 0.3)

但它不起作用。

有什么建议吗? (理想情况下,我希望自动设置y-tick-label)

0 个答案:

没有答案