Как использовать ggplot2 для создания столбчатой ​​диаграммы из трех переменных (не категорий!)? - PullRequest
0 голосов
/ 06 апреля 2020

У меня есть фрейм данных с данными о суточной эволюции коронавируса с 4 столбцами: дата, активные случаи, случаи смерти и выздоровления. Поскольку сумма этих трех последних значений равна общему количеству случаев, я хочу столбчатую диаграмму, где каждый день имеет соответствующий столбец, разделенный на 3 части: активные случаи, случаи смерти и восстановления. Как мне сделать это с ggplot? Заранее спасибо

1 Ответ

1 голос
/ 06 апреля 2020

Возможный способ - преобразовать ваш фрейм данных в более длинный формат, используя, например, функцию 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

Отвечает ли он на ваш вопрос?

Если нет, приведите воспроизводимый пример набора данных, следуя этому руководству: Как создать великолепный воспроизводимый пример R и код, который вы пробовали до сих пор.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...