【发布时间】:2015-09-11 06:03:45
【问题描述】:
假设我有一些时间序列数据,如下所示:
df <- data.frame(Month=seq(1,12),
Value = rnorm(12,0,1),
Season = c('Winter', 'Winter', 'Spring',
'Spring', 'Spring', 'Summer',
'Summer', 'Summer', 'Fall',
'Fall', 'Fall', 'Winter'))
我想绘制一段时间内的价值,并展示它与季节的关系。绘制值很容易,例如:
ggplot(data, aes(Month, Value)) + geom_line()
在 ggplot 或基础图形中:
plot(Value~Month, data=df, type='l')
我想做的是令人信服地叠加一个因素。我想根据 x 轴上的月份来更改背景颜色。所以,在我的例子中,左边的 1/6 是冬天的白色,然后向右移动的下三分之一是春天的黄色,然后是夏天的下一个三分之一的红色,等等,直到最右边的 1/12 再次变成白色.
对于时间序列数据,这些似乎应该是简单易行的,但我在任何图形包中都找不到有关如何执行此操作的任何帮助。任何建议或见解将不胜感激!
【问题讨论】:
-
zoo包为ts和zoo时间序列对象提供了xblocks()函数,以促进此类显示。见example(“xblocks“, package = “zoo“)。
标签: r plot ggplot2 time-series