使用ggplot2创建流行病学直方图

问题描述

以下是一些虚拟数据:

dummy <- data.frame(numbers = 1:5,symptomdate  = as.Date(c("2012-08-30","2012-08-30","2012-08-31","2012-09-01","2012-09-01")),reporteddate = as.Date(c("2012-09-02","2012-09-03","2012-09-05","2012-09-07","2012-09-08")),dateofdeath   = as.Date(c("2012-09-10",NA,"2012-09-31")),gender = c("Female","Male","Female","Male"),position = c("Resident","Staff","Resident","Staff"),outbreakdate = as.Date(c("2012-08-31","2012-08-31")))

这里有5种疾病,每例代表数据框中的一行。我想创建一个直方图,在x轴上标记症状日期,并在y轴上标记病例数。我还需要一个堆叠的条形图,以便于工作人员用例以一种颜色显示,而常驻用例以另一种颜色显示

到目前为止,这是我所拥有的,但是我不确定如何使y轴成为计数(而不是使用as.numeric,这不是我想要的)。.

ggplot(dummy,aes(fill=position,y=as.numeric(symptomdate),x=symptomdate)) + 
  geom_bar(position="stack",stat="identity")

我也希望图表上出现一个标记为“破节日期”的标记,即标记2012年8月31日的一行:* edit,例如:line above outbreak date

非常感谢您!

解决方法

好像已经解决了ggplot问题:https://github.com/tidyverse/ggplot2/issues/4205。如果您设置栏的宽度应该会起作用

ggplot(dummy,aes(x=symptomdate,fill=position)) + 
  geom_bar(width=.9)

enter image description here