[英]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.