Возможный способ - преобразовать ваш фрейм данных в более длинный формат, используя, например, функцию 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))
Отвечает ли он на ваш вопрос?
Если нет, приведите воспроизводимый пример набора данных, следуя этому руководству: Как создать великолепный воспроизводимый пример R и код, который вы пробовали до сих пор.