Ggplot2 folded area chart does not fill out between years

I have data structured as follows (this is just an example):

    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

I want to create a chart by area. With one dataset formatted in exactly the same way as above, the formula ggplot(data, aes(x=year,y=cars, fill=company)) + geom_area()fills areas between years, for example:

enter image description here

However, if another data set is formatted in exactly the same way and generated using exactly the same ggplot code, but only using a new data source ggplot(data2, aes(x=year,y=cars, fill=company)) + geom_area(), the chart does not fill the area between years and creates a mess, like this:

enter image description here

In each year, you will notice that all points are connected. Odd intervals between years.

Does anyone have any suggestions regarding a possible source of this error?

-1
1

company year. .

library("ggplot2")
library("dplyr")

data <- data.frame(years = rep(1991:2000, times = 10), 
               company = as.factor(rep(1:10, each = 10)), 
               cars = runif(n = 100, min = 500, max = 1000))

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

# Randomly order data
data2 <- data[sample(x = 1:100, size = 100, replace = F), ]

ggplot(data2, aes(x = years, y = cars, fill = company)) + 
  geom_area()

# Reordering the data
data3 <- arrange(data2, company, years)

ggplot(data3, aes(x = years, y = cars, fill = company)) + 
  geom_area()
+1

All Articles