簡體   English   中英

如何使用 ggplot2 創建三個變量(不是類別?)的堆積條形圖?

[英]How to use ggplot2 to create a stacked bar chart of three variables (not categories!)?

我有一個 dataframe,其中包含 4 列冠狀病毒每日演變的數據:日期、活躍病例、死亡和康復。 由於這 3 個最后一個值的總和等於病例總數,我想要一個條形圖,其中每天都有一個相應的條形圖,分為 3 部分:活躍病例、死亡和康復。 我如何用 ggplot 做到這一點? 先感謝您

一種可能的方法是使用pivot_longer function 將 dataframe 重塑為更長的格式,以適應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 可重現示例以及您迄今為止嘗試的代碼。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM