首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Ggplot叠加区

Ggplot叠加区
EN

Stack Overflow用户
提问于 2020-11-04 01:13:30
回答 1查看 23关注 0票数 4

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

我已经做过了

代码语言:javascript
复制
c <- ggplot(crises_df, aes(x = as.numeric(Year), y = Number, fill = Crises)) +
  geom_area()

plot(c)

然而,结果是这样的,

你能帮助解决这个问题吗?

我的数据在这里

代码语言:javascript
复制
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")
EN

回答 1

Stack Overflow用户

发布于 2020-11-04 01:23:24

当x(年份)和y(危机)的组合很多时,geom_area期望x(年份)和y(危机)的每个组合对应一行;您可以使用dplyr的count()来实现。

您还需要用0填充缺少的值(年份-危机组合),否则它将跳过该危机的年份并留下空白;您可以使用tidyr的complete()来获取该值。

在组合中:

代码语言:javascript
复制
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()

票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/64667443

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档