ggplot2堆积区域图表分组和总结相似的术语

时间:2016-02-04 01:50:16

标签: r ggplot2 stacked-area-chart

我的数据首先看起来像这样:

year    company cars
2011    toyota  609
2011    honda   710
2011    ford    77
2011    nissan  45
2011    chevy   11
2012    toyota  152
2012    honda   657
2012    ford    128
2012    nissan  159
2012    chevy   322
2013    toyota  907
2013    honda   656
2013    ford    138
2013    nissan  270
2013    chevy   106
2014    toyota  336
2014    honda   957
2014    ford    204
2014    nissan  219
2014    chevy   282

我只想专注于丰田和本田,并将小公司归为"其他。"我使用代码data$company[data$company != "toyota" & data$company != "honda"] = "other"并且能够修改数据集,现在只有公司是丰田,本田和其他公司,如下所示:

year    company cars
2011    toyota  609
2011    honda   710
2011    other   77
2011    other   45
2011    other   11
2012    toyota  152
2012    honda   657
2012    other   128
2012    other   159
2012    other   322
2013    toyota  907
2013    honda   656
2013    other   138
2013    other   270
2013    other   106
2014    toyota  336
2014    honda   957
2014    other   204
2014    other   219
2014    other   282

根据这些数据,我想在ggplot中生成堆积区域图。我使用这段代码:

ggplot(data, aes(x=year,y=cars, fill=company)) + geom_area())

我喜欢"其他"的多个实例。在同一年分组和总和。即2014年的三个"其他"(204,219和282)将总和并绘制为705.但是,我的情节反而在图表中留下奇怪的空白,如下所示:

enter image description here

任何人都知道如何生成堆积区域图,以便类似术语分组和求和?

1 个答案:

答案 0 :(得分:1)

您首先要汇总数据:

library(ggplot2)

df_agg <- aggregate(cars ~ year + company, data = df, sum)

ggplot(df_agg, aes(x = year, y = cars, fill = company)) +
  geom_area()