【问题标题】:Creating epidemiological histogram using ggplot2使用 ggplot2 创建流行病学直方图
【发布时间】:2020-10-23 06:18:23
【问题描述】:

这是一些虚拟数据:

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")

我也希望在图表中显示一个小标记,并带有“Oubreak date”的标签,即标记 2012 年 8 月 31 日的小线:*编辑,如下所示:line above outbreak date

非常感谢您!

【问题讨论】:

    标签: r ggplot2 histogram


    【解决方案1】:

    看起来它与 ggplot 问题有关:https://github.com/tidyverse/ggplot2/issues/4205。如果您为栏设置宽度,它应该可以工作

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

    【讨论】:

    • 非常感谢!虽然我有你,但知道如何解决第二个问题,即添加一个小标记以显示在图表中,并带有一个标有“Oubreak date”的标签,即标记 2012 年 8 月 31 日的一条小线?
    猜你喜欢
    • 2020-08-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-01-30
    • 2015-09-11
    • 1970-01-01
    • 2013-05-03
    • 1970-01-01
    相关资源
    最近更新 更多