0

我的数据最初看起来像这样:

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。但是,我的绘图反而在图表中留下了奇怪的空白,如下所示:

在此处输入图像描述

任何人都知道如何生成堆积面积图,以便像术语组和总和一样?

4

1 回答 1

1

您将首先要汇总数据:

library(ggplot2)

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

ggplot(df_agg, aes(x = year, y = cars, fill = company)) +
  geom_area()
于 2016-02-04T02:24:00.667 回答