Reputation: 81
I already constructed some charts in execel. The problem is that the quality of the images in excel is not the best. In this way, I am trying to design the same plots in R. I am trying to plot this in R
I have already done this
c <- ggplot(crises_df, aes(x = as.numeric(Year), y = Number, fill = Crises)) +
geom_area()
plot(c)
However, the outcome was this,
Can you help solve this problem?
My data is here
structure(list(Year = c("1980", "1980", "1980", "1980", "1980",
"1981", "1981", "1981", "1981", "1981", "1981", "1981", "1981",
"1981", "1981", "1981", "1981", "1982", "1982", "1982", "1982",
"1982", "1982", "1982", "1982", "1983", "1983", "1983", "1983",
"1983", "1983", "1983", "1983", "1983", "1983", "1983", "1983",
"1983", "1983", "1984", "1984", "1984", "1984", "1984", "1985",
"1985", "1985", "1985", "1985", "1985", "1986", "1986", "1987",
"1987", "1987", "1987", "1987", "1987", "1987", "1988", "1988",
"1988", "1988", "1988", "1988", "1988", "1988", "1988", "1989",
"1989", "1989", "1989", "1989", "1989", "1990", "1990", "1990",
"1990", "1990", "1990", "1990", "1990", "1991", "1991", "1991",
"1991", "1991", "1992", "1992", "1992", "1992", "1992", "1992",
"1992", "1992", "1993", "1993", "1993", "1993", "1993", "1993",
"1993", "1994", "1994", "1994", "1994", "1994", "1994", "1994",
"1994", "1994", "1994", "1994", "1994", "1994", "1995", "1995",
"1995", "1995", "1995", "1995", "1995", "1996", "1996", "1996",
"1996", "1997", "1997", "1997", "1997", "1997", "1997", "1997",
"1997", "1997", "1997", "1997", "1998", "1998", "1998", "1998",
"1998", "1998", "1998", "1998", "1998", "1998", "1998", "1998",
"1998", "1998", "1998", "1999", "1999", "1999", "2000", "2001",
"2001", "2002", "2002", "2002", "2002", "2002", "2004", "2005",
"2007", "2007", "2008", "2008", "2008", "2008", "2008", "2008",
"2008", "2008", "2008", "2008", "2008", "2008", "2008", "2008",
"2008", "2008", "2008", "2008", "2009", "2009", "2012", "2012",
"2013", "2014", "2014", "2014", "2014", "2014", "2015", "2015",
"2015", "2015", "2015", "2016"), Crises = c("Banking Crisis",
"Banking Crisis", "Banking Crisis", "Currency Crisis", "Currency Crisis",
"Banking Crisis", "Banking Crisis", "Banking Crisis", "Currency Crisis",
"Currency Crisis", "Currency Crisis", "Currency Crisis", "Currency Crisis",
"Sovereign Debt Crisis", "Sovereign Debt Crisis", "Sovereign Debt Crisis",
"Sovereign Debt Crisis", "Banking Crisis", "Currency Crisis",
"Currency Crisis", "Currency Crisis", "Sovereign Debt Crisis",
"Sovereign Debt Crisis", "Sovereign Debt Crisis", "Sovereign Debt Crisis",
"Banking Crisis", "Banking Crisis", "Banking Crisis", "Banking Crisis",
"Currency Crisis", "Currency Crisis", "Currency Crisis", "Currency Crisis",
"Currency Crisis", "Sovereign Debt Crisis", "Sovereign Debt Crisis",
"Sovereign Debt Crisis", "Sovereign Debt Crisis", "Sovereign Debt Crisis",
"Banking Crisis", "Currency Crisis", "Currency Crisis", "Sovereign Debt Crisis",
"Sovereign Debt Crisis", "Banking Crisis", "Currency Crisis",
"Currency Crisis", "Currency Crisis", "Sovereign Debt Crisis",
"Sovereign Debt Crisis", "Currency Crisis", "Currency Crisis",
"Banking Crisis", "Banking Crisis", "Banking Crisis", "Banking Crisis",
"Currency Crisis", "Currency Crisis", "Currency Crisis", "Banking Crisis",
"Banking Crisis", "Banking Crisis", "Banking Crisis", "Banking Crisis",
"Banking Crisis", "Currency Crisis", "Currency Crisis", "Currency Crisis",
"Banking Crisis", "Banking Crisis", "Banking Crisis", "Currency Crisis",
"Sovereign Debt Crisis", "Sovereign Debt Crisis", "Banking Crisis",
"Banking Crisis", "Currency Crisis", "Currency Crisis", "Currency Crisis",
"Currency Crisis", "Sovereign Debt Crisis", "Sovereign Debt Crisis",
"Banking Crisis", "Banking Crisis", "Banking Crisis", "Banking Crisis",
"Banking Crisis", "Banking Crisis", "Banking Crisis", "Banking Crisis",
"Currency Crisis", "Currency Crisis", "Currency Crisis", "Currency Crisis",
"Currency Crisis", "Banking Crisis", "Banking Crisis", "Banking Crisis",
"Currency Crisis", "Currency Crisis", "Currency Crisis", "Currency Crisis",
"Banking Crisis", "Banking Crisis", "Banking Crisis", "Banking Crisis",
"Banking Crisis", "Currency Crisis", "Currency Crisis", "Currency Crisis",
"Currency Crisis", "Currency Crisis", "Currency Crisis", "Currency Crisis",
"Currency Crisis", "Banking Crisis", "Banking Crisis", "Banking Crisis",
"Banking Crisis", "Banking Crisis", "Banking Crisis", "Currency Crisis",
"Banking Crisis", "Banking Crisis", "Currency Crisis", "Currency Crisis",
"Banking Crisis", "Banking Crisis", "Banking Crisis", "Banking Crisis",
"Banking Crisis", "Banking Crisis", "Currency Crisis", "Currency Crisis",
"Currency Crisis", "Currency Crisis", "Currency Crisis", "Banking Crisis",
"Banking Crisis", "Banking Crisis", "Banking Crisis", "Banking Crisis",
"Banking Crisis", "Currency Crisis", "Currency Crisis", "Currency Crisis",
"Currency Crisis", "Currency Crisis", "Currency Crisis", "Sovereign Debt Crisis",
"Sovereign Debt Crisis", "Sovereign Debt Crisis", "Currency Crisis",
"Currency Crisis", "Sovereign Debt Crisis", "Currency Crisis",
"Banking Crisis", "Sovereign Debt Crisis", "Banking Crisis",
"Currency Crisis", "Currency Crisis", "Sovereign Debt Crisis",
"Sovereign Debt Crisis", "Currency Crisis", "Currency Crisis",
"Banking Crisis", "Banking Crisis", "Banking Crisis", "Banking Crisis",
"Banking Crisis", "Banking Crisis", "Banking Crisis", "Banking Crisis",
"Banking Crisis", "Banking Crisis", "Banking Crisis", "Banking Crisis",
"Banking Crisis", "Banking Crisis", "Banking Crisis", "Banking Crisis",
"Banking Crisis", "Banking Crisis", "Banking Crisis", "Banking Crisis",
"Currency Crisis", "Currency Crisis", "Currency Crisis", "Sovereign Debt Crisis",
"Currency Crisis", "Banking Crisis", "Banking Crisis", "Currency Crisis",
"Currency Crisis", "Sovereign Debt Crisis", "Currency Crisis",
"Currency Crisis", "Currency Crisis", "Currency Crisis", "Sovereign Debt Crisis",
"Currency Crisis"), Number = c(1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1, 1)), row.names = c(NA, -201L), class = "data.frame")
Upvotes: 4
Views: 29
Reputation: 78590
geom_area
expects one row for each combination of x (year) and y (crisis) while you have many; you can use dplyr's count()
to get that.
You'll also need to fill in missing values (year-crisis combination) with 0 or else it will skip that year for that crisis and leave a gap; you can use tidyr's complete()
to get that.
In combination:
library(dplyr)
library(tidyr)
crises_df %>%
count(Year, Crises, wt = Number) %>%
complete(Year, Crises, fill = list(n = 0)) %>%
ggplot(aes(as.numeric(Year), n, fill = Crises)) +
geom_area()
Upvotes: 4