如何使用ggplot2创建三个变量(不是类别!)的堆叠条形图?

问题描述 投票:0回答:1

我有一个数据框,其中包含4列冠状病毒每日进化的数据:日期,活跃病例,死亡和恢复。由于这三个最后值的总和等于病例总数,因此我想要一个条形图,其中每天都有一个对应的条形图,该条形图分为3个部分:活动中的病例,死亡和康复。我该如何用ggplot做到这一点?预先谢谢你

r ggplot2 bar-chart stacked-chart
1个回答
0
投票

[一种可能的方法是例如使用pivot_longer函数将数据框重整为更长的格式,以适合ggplot2使用。

以一个伪数据集为例:

library(lubridate)
df <- data.frame(date = seq(ymd("2020-01-01"),ymd("2020-01-10"),by = "day"),
                 active = sample(10:100,10),
                 death = sample(10:100,10),
                 recov = sample(10:100,10))

library(dplyr)
library(tidyr)
library(ggplot2)

df %>% pivot_longer(-date, names_to = "case", values_to = "val") %>%
  mutate(case = factor(case, levels = c("active","recov","death"))) %>%
  ggplot(aes(x = date, y = val, fill = case))+
  geom_col(position = position_stack(reverse = TRUE))

enter image description here

它回答了您的问题吗?

如果没有,请按照本指南提供可复制的数据集示例:How to make a great R reproducible example和到目前为止尝试的代码。

© www.soinside.com 2019 - 2024. All rights reserved.