我已经在execel中构建了一些图表。问题是,excel中的图像质量并不是最好的。通过这种方式,我尝试在R中设计相同的图。我试图在R中绘制此图。

我已经做过了
c <- ggplot(crises_df, aes(x = as.numeric(Year), y = Number, fill = Crises)) +
geom_area()
plot(c)然而,结果是这样的,

你能帮助解决这个问题吗?
我的数据在这里
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")发布于 2020-11-04 01:23:24
当x(年份)和y(危机)的组合很多时,geom_area期望x(年份)和y(危机)的每个组合对应一行;您可以使用dplyr的count()来实现。
您还需要用0填充缺少的值(年份-危机组合),否则它将跳过该危机的年份并留下空白;您可以使用tidyr的complete()来获取该值。
在组合中:
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()

https://stackoverflow.com/questions/64667443
复制相似问题