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

时间:2020-10-23 06:18:23

标签: r ggplot2 histogram

以下是一些虚拟数据:

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, NA, NA, "2012-09-31")),
                    gender = c("Female", "Male", "Male","Female", "Male"),
                    position = c("Resident", "Staff", "Resident", "Staff", "Staff"), 
                    outbreakdate = as.Date(c("2012-08-31","2012-08-31","2012-08-31","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

非常感谢您!

1 个答案:

答案 0 :(得分:0)

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

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

enter image description here