首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何标记来自连续条形值的y轴列值的总和,如示例“Confirmed”Cases per x-axis“Date”

如何标记来自连续条形值的y轴列值的总和,如示例“Confirmed”Cases per x-axis“Date”
EN

Stack Overflow用户
提问于 2020-07-17 21:33:08
回答 1查看 93关注 0票数 1

我已经在这方面工作了一段时间,现在重新发布这篇文章,希望能简化问题的定义,并从我之前的尝试中获得一些清晰的反馈。我能够标记每个单独的列值,但不能将必要的代码放在一起来求和。我看过的例子永远不会像我试图将它们组合在一起的方式工作,例如使用goup_by或summarize等。我只想对“确认病例”的值求和,而不像许多c("x","Y",……)那样显示其他列值。"data"),则无法读取。

以下是数据框:

代码语言:javascript
复制
dput(COVID1[1:12, ])
structure(list(COUNTY = c("Antrim", "Antrim", "Antrim", "Charlevoix", 
  "Charlevoix", "Grand Traverse", "Grand Traverse", "Grand Traverse", 
  "Antrim", "Grand Traverse", "Grand Traverse", "Grand Traverse"
  ), Date = structure(c(18453, 18456, 18457, 18453, 18455, 18453, 
  18456, 18457, 18455, 18453, 18456, 18457), class = "Date"), CASE_STATUS = c("Confirmed", 
  "Confirmed", "Confirmed", "Confirmed", "Confirmed", "Confirmed", 
  "Confirmed", "Confirmed", "Probable", "Probable", "Probable", 
  "Probable"), Cases = c(1L, 1L, 2L, 1L, 3L, 2L, 2L, 1L, 1L, 1L, 
  1L, 1L)), row.names = c(NA, 12L), class = "data.frame")

代码:

代码语言:javascript
复制
        ggplot(filter(COVID1, COUNTY %in% c("Antrim", "Charlevoix", "Grand Traverse"), Cases > 0)) +
            geom_col(aes(x = Date, y = Cases, fill = CASE_STATUS), position = position_stack(reverse = TRUE), width = .88)+
            geom_text(aes(x = Date, y = Cases, label = (Cases)), position = position_stack(reverse = TRUE), vjust = 1.5, size = 3, color = "white") +
            scale_fill_manual(values = c('blue',"tomato"))+
            scale_x_date(labels = date_format("%m/%d"), limits = as.Date(c('2020-07-09','today()')), breaks = "1 week")+
    theme(axis.text.x = element_text(angle=0))+
labs(title = "Antrim - Grand Traverse - Charlevoix")

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-07-18 05:19:34

我不确定我是否理解了问题,但我认为您希望添加确认病例的总和作为标签。也许有一种ggplot的方法可以做到这一点,但我认为最直接的方法是用你的标签创建另一个数据集,并将其输入。

代码语言:javascript
复制
date_labels <- filter(COVID1, COUNTY %in% c("Antrim", "Charlevoix", "Grand Traverse"), Cases > 0) %>% group_by(Date) %>% summarise(confirmed_cases = sum(Cases[CASE_STATUS == "Confirmed"]))

ggplot(filter(COVID1, COUNTY %in% c("Antrim", "Charlevoix", "Grand Traverse"), Cases > 0)) +
  geom_col(aes(x = Date, y = Cases, fill = CASE_STATUS), position = position_stack(reverse = TRUE), width = .88)+
  geom_text(data = date_labels, aes(x = Date, y = 1, label = confirmed_cases), position = position_stack(reverse = TRUE), vjust = 1.5, size = 3, color = "white") +
  scale_fill_manual(values = c('blue',"tomato"))+
  scale_x_date(labels = label_date("%m/%d"), limits = as.Date(c('2020-07-09','today()')), breaks = "1 week")+
  theme(axis.text.x = element_text(angle=0))+
  labs(title = "Antrim - Grand Traverse - Charlevoix")

我得到的结果是:

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

https://stackoverflow.com/questions/62955099

复制
相关文章

相似问题

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