R中的堆栈时间序列图

时间:2017-01-13 11:20:37

标签: r plot ggplot2 time-series

我有以下数据集:

Percentage  Date    Category
0.001546278 1   A
0.002334523 2   A
0.00089928  3   A
0.00205846  4   A
0.000994036 1   B
0.000961275 2   B
6.00E-04    3   B
0.001132153 4   B
0.000773139 1   C
0.000411975 2   C
0.00039968  3   C
0.000205846 4   C

我用来制作图表:

ggplot(data.frame(data), aes(x = Date, y = Percentage, fill = Category)) + 
  geom_area(position = 'stack')

我想要的是在x轴上获取日期而不是序列1-4:即:2001年1月,2002年2月,2002年3月和2002年4月。任何日期格式都可以,只要月份和一年出现。有关如何制作它的任何建议吗?

2 个答案:

答案 0 :(得分:2)

使用zoo包中的yearmon()函数。

例如: 替补:

     x = as.yearmon(as.Date("2015-12-25", %Y-%m-%d),"%y-%m")

答案 1 :(得分:1)

你可以做到

ggplot(data.frame(data), aes(x = as.Date("2000-12-01")+months(Date), y = Percentage, fill = Category)) + 
  geom_area(position = 'stack') + 
  scale_x_date(date_labels = "%b %Y")