问题描述
以下是一些虚拟数据:
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)